Bagaimana saya membuat ls --color = otomatis berfungsi di Mac OS X?


Jawaban:


79

lssebenarnya terpisah dari Bash. Mac OS X memiliki versi BSD ls, yang mengharuskan -Gpada baris perintah, atau CLICOLOR(dan mungkin LSCOLORS) di lingkungan.

Lihat man lsuntuk info lebih lanjut.


5
Dito. Saya telah alias ls='ls -G'mengatur .bashrc saya di Snow Leopard.
ayaz

Untuk beberapa alasan, CLICOLOR=Yberhenti bekerja di Mac saya. alias ls='ls -G'akan memaksa lsuntuk mewarnai. Saya mendefinisikan ini hanya untuk terminal interaktif.
DKroot

31

Buka jendela terminal dan ketik:

alias ls='ls -G'

Kemudian tekan Enterdan lakukan!


10

Gunakan Homebrew .

brew install coreutils

Perhatikan bahwa ini akan membuang awalan gdi depan semua perintah (misalnya, glsuntuk ls). Ini memberikan opsi untuk sumber file yang akan alias ini untuk Anda secara otomatis.

Saya tidak yakin apakah ada opsi untuk menginstalnya secara langsung tanpa harus melakukan semuanya alias, jadi sebagai gantinya di MacPorts diinstal dan lakukan ini .


1
Output mengatakan: Jika Anda benar-benar perlu menggunakan perintah ini dengan nama normal mereka, Anda dapat ... Mengapa menekankan benar-benar ? Apa kerugiannya?
z0r

Dan Anda tidak pernah mengarsipkan halaman Anda di archive.org dan sekarang tautan Anda dalam paragraf terakhir hilang
barlop

5

kompatibilitas untuk GNU dan * BSD / darwin ls

~ /. profil

#for *BSD/darwin
export CLICOLOR=1

ls --color=auto &> /dev/null && alias ls='ls --color=auto' ||

~ / .bashrc (Saya tidak ingat apakah bash di Linux selalu membaca ~ / .profile, tetapi bukan zsh saya di ARCH)

[[ -f $HOME/.profile ]] && source $HOME/.profile

6
Bisakah Anda menjelaskan kode ini?
bwDraco

1
mengatur variabel lingkungan CLICOLOR untuk * BSD dan sistem Darwin - jika disetel ls dan mungkin utilitas lain akan berfungsi berwarna, tetapi GNU ls (untuk Linux) mengabaikannya. Jika "ls --color = auto" tidak akan gagal (status keluar = 0) - kami memiliki versi GNU ls dan membuat alias untuk menggambar kode warna dalam mode interaktif, jika gagal - maka kami tidak perlu alias karena CLICOLOR variabel. "&> / dev / null" tapi jangan tampilkan stderr dan stdout jika ada yang gagal atau ok. Bekerja untuk linux dan osx saya. (ps bash di osx dan freebsd tidak membaca .bashrc, jadi letakkan di .profile. sudah perbaiki).
Victor Gavro

2

Anda harus memasang versi alternatif ls. Yang biasanya digunakan di linux adalah dari proyek GNU coreutils .

Anda dapat membangun dan menginstal atau menginstal dari macports , fink atau homebrew .


4
Itu berlebihan, menurut saya. Anda tidak perlu menginstal versi terpisah lsketika fitur yang sama didukung sedikit berbeda pada versi yang ada ls.
ayaz

Poin bagus. Kemudian lagi, warnanya belum pernah seleraku. alias ls='ls -F'
Doug Harris

alias ls='ls -FG'- ini yang terbaik dari kedua dunia!
mipadi

1
Saya melakukan ini menggunakan homebrew. Ini tidak berlebihan jika Anda menggunakan komputer Mac dan * nix dan ingin terminal Anda terlihat sama - ini memungkinkan Anda untuk menggunakan file konfigurasi yang sama di semua komputer. Ini diinstal sebagai glsdan tidak menggantikan yang asli sehingga benar-benar tidak ada downside.
pengirim

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.