Instal coreutils
dengan Homebrew dan alias ll
untuk gls -Flh --group-directories-first
gantinya.
brew install coreutils
menginstal GNU Coreutils , kalau-kalau tidak diinstal.
- Gunakan
alias ll='gls -Flh --group-directories-first'
dalam .bashrc
.
(Jika Anda ingin menggunakan .bashrc
file yang sama di kedua sistem operasi, lihat di bawah.)
Di Ubuntu, ls
disediakan oleh GNU Coreutils , yang selalu dimiliki Ubuntu. Itu sebabnya ls
mendukung --group-directories-first
di Ubuntu. Mungkin Anda pernah menggunakan versi GNU Coreutils ls
pada macOS sebelumnya, yang diinstal Homebrew gls
tetapi dapat digunakan seperti ls
dalam beberapa cara.
ls
adalah perintah eksternal, bukan Bash builtin. Menggunakan versi atau versi Bash yang berbeda seharusnya tidak memengaruhinya. Saya tidak yakin apa yang terjadi ketika Anda memutakhirkan Bash menggunakan Homebrew. Mungkin lebih dari Bash juga ditingkatkan; mungkin Anda memilikils
fungsi shell atau alias yang ditentukan dalam file konfigurasi global yang diganti; mungkin Anda memiliki tautan simbolisls
yang telah menunjukgls
dan ditimpa; mungkin Anda masih memiliki sesuatu seperti itu tetapi Anda$PATH
telah berubah. Apa pun yang terjadi, GNU Coreutils ls
mendukung--group-directories-first
, dan beralih ke sana (seperti yang saya sarankan bmike ) harus memperbaiki masalah Anda.
Jika karena alasan tertentu Anda ingin menggunakan .bashrc
file yang sama persis di kedua sistem, ada beberapa pendekatan yang mungkin. Anda dapat membuat symlink, skrip wrapper, fungsi shell, atau (karena ekspansi Bash adalah non-rekursif) untuk alias gls
di sistem Ubuntu Anda. Tapi saya sarankan bukan pengecekan yang OS sedang digunakan dalam .bashrc
. Meskipun Anda akan mendapatkan ll
alias berbeda yang didefinisikan dalam setiap sistem, pendekatan ini memiliki manfaat mendokumentasikan diri. Anda .bashrc
akan masuk akal untuk Anda dalam setahun, atau sebulan.
if [ "$OSTYPE" == linux-gnu ]; then # Is this the Ubuntu system?
alias ll='ls -Flh --group-directories-first'
else
alias ll='gls -Flh --group-directories-first'
fi
Atau jika Anda biasanya lebih suka menjalankan Coreutils ls
, bahkan jika Anda tidak menggunakan ll
alias, Anda bisa membuat ls
alias untuk gls
:
if [ "$OSTYPE" != linux-gnu ]; then # Is this the macOS system?
alias ls=gls
fi
alias ll='ls -Flh --group-directories-first'
(Terima kasih pergi ke soroushjp untuk menangkap kesalahan dalam versi sebelumnya dari skrip itu.)
ls
atau macOSls
? Sudahkah Anda mencoba yang lain?