Instal coreutilsdengan Homebrew dan alias lluntuk gls -Flh --group-directories-firstgantinya.
brew install coreutils menginstal GNU Coreutils , kalau-kalau tidak diinstal.
- Gunakan
alias ll='gls -Flh --group-directories-first'dalam .bashrc.
(Jika Anda ingin menggunakan .bashrcfile yang sama di kedua sistem operasi, lihat di bawah.)
Di Ubuntu, lsdisediakan oleh GNU Coreutils , yang selalu dimiliki Ubuntu. Itu sebabnya lsmendukung --group-directories-firstdi Ubuntu. Mungkin Anda pernah menggunakan versi GNU Coreutils lspada macOS sebelumnya, yang diinstal Homebrew glstetapi dapat digunakan seperti lsdalam beberapa cara.
lsadalah 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 memilikilsfungsi shell atau alias yang ditentukan dalam file konfigurasi global yang diganti; mungkin Anda memiliki tautan simbolislsyang telah menunjukglsdan ditimpa; mungkin Anda masih memiliki sesuatu seperti itu tetapi Anda$PATHtelah berubah. Apa pun yang terjadi, GNU Coreutils lsmendukung--group-directories-first , dan beralih ke sana (seperti yang saya sarankan bmike ) harus memperbaiki masalah Anda.
Jika karena alasan tertentu Anda ingin menggunakan .bashrcfile 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 glsdi sistem Ubuntu Anda. Tapi saya sarankan bukan pengecekan yang OS sedang digunakan dalam .bashrc. Meskipun Anda akan mendapatkan llalias berbeda yang didefinisikan dalam setiap sistem, pendekatan ini memiliki manfaat mendokumentasikan diri. Anda .bashrcakan 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 llalias, Anda bisa membuat lsalias 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.)
lsatau macOSls? Sudahkah Anda mencoba yang lain?