Làm cách nào để tôi có được ls --color = auto để hoạt động trên Mac OS X?


Câu trả lời:


79

lsthực sự tách biệt với Bash. Mac OS X có phiên bản BSD ls, yêu cầu -Gtrên dòng lệnh hoặc CLICOLOR(và có lẽ LSCOLORS) trong môi trường.

Xem man lsđể biết thêm.


5
Như trên. Tôi đã alias ls='ls -G'thiết lập .bashrc của mình trên Snow Leopard.
ayaz

Vì một số lý do, CLICOLOR=Yđã ngừng hoạt động trên máy Mac của tôi. alias ls='ls -G'sẽ buộc lsphải tô màu. Tôi xác định điều này chỉ cho các thiết bị đầu cuối tương tác.
DKroot

31

Mở cửa sổ terminal và gõ:

alias ls='ls -G'

Sau đó đánh Entervà thực hiện!


10

Sử dụng Homebrew .

brew install coreutils

Lưu ý rằng điều này sẽ ném một tiền tố gở phía trước của tất cả các lệnh (ví dụ: glscho ls). Nó cung cấp một tùy chọn để lấy một tệp sẽ tự động đặt các bí danh này cho bạn.

Tôi không chắc chắn nếu có một tùy chọn để cài đặt chúng trực tiếp mà không phải thực hiện toàn bộ điều bí danh, vì vậy thay vào đó, trong MacPorts đã cài đặt và đã làm điều này .


1
Đầu ra cho biết: Nếu bạn thực sự cần sử dụng các lệnh này với tên bình thường của chúng, bạn có thể ... Tại sao nó thực sự nhấn mạnh ? Nhược điểm là gì?
z0r

Và bạn chưa bao giờ lưu trữ trang của mình trên archive.org và bây giờ liên kết của bạn trong đoạn cuối của bạn đã biến mất
barlop

5

khả năng tương thích cho GNU và * BSD / darwin ls

~ /.

#for *BSD/darwin
export CLICOLOR=1

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

~ / .bashrc (Tôi không nhớ nếu bash trên Linux luôn đọc ~ / .profile, nhưng không phải zsh của tôi trên ARCH)

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

6
Bạn có thể giải thích mã này?
bwDraco 17/2/2015

1
thiết lập biến môi trường CLICOLOR cho các hệ thống * BSD và Darwin - nếu nó đặt ls và có thể các tiện ích khác sẽ hoạt động được, nhưng GNU ls (đối với Linux) sẽ bỏ qua nó. Nếu "ls --color = auto" sẽ không thất bại (thoát trạng thái = 0) - chúng tôi có phiên bản GNU của ls và tạo bí danh để vẽ mã màu trong chế độ tương tác, nếu thất bại - thì chúng tôi không cần bí danh vì CLICOLOR Biến đổi. "&> / dev / null" chỉ không hiển thị stderr và stdout nếu có lỗi hoặc nếu nó ổn. Hoạt động cho linux và osx của tôi. (ps bash trên osx và freebsd không đọc .bashrc, vì vậy hãy đặt nó vào .profile. đã sửa nó).
Victor Gavro 23/2/2015

2

Bạn sẽ cần phải cài đặt một phiên bản thay thế của ls. Cái thường được sử dụng trong linux là từ dự án GNU coreutils .

Bạn có thể xây dựng và cài đặt hoặc cài đặt từ macports , fink hoặc homebrew .


4
Đó là quá mức cần thiết, theo ý kiến ​​của tôi. Bạn không cần phải cài đặt một phiên bản riêng biệt lskhi cùng một tính năng được hỗ trợ hơi khác nhau trên phiên bản hiện có ls.
ayaz

Điểm tốt. Sau đó, một lần nữa, ls màu chưa bao giờ là hương vị của tôi. alias ls='ls -F'
Doug Harris

alias ls='ls -FG'- đó là điều tốt nhất của cả hai thế giới!
mipadi

1
Tôi làm điều này bằng cách sử dụng homebrew. Sẽ không quá mức nếu bạn sử dụng cả máy tính Mac và * nix và muốn các thiết bị đầu cuối của bạn trông giống nhau - điều này cho phép bạn sử dụng cùng một tệp cấu hình trên tất cả các máy tính. Nó được cài đặt glsvà không thay thế bản gốc nên thực sự không có nhược điểm.
gửi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.