Làm cách nào để tô màu các tệp ẩn trong danh sách tệp `ls`?


10

LS_COLORSbiến môi trường cho phép bạn quyết định màu sắc cho các loại tệp khác nhau cho lslệnh của GNU coreutil , chẳng hạn như thư mục, tệp thông thường, liên kết, v.v ... Tôi cho rằng các tệp chấm được coi là một biến thể của các loại tệp Linux và không phải là một loại riêng vì vậy có không có tùy chọn để chỉ định màu hiển thị cho chúng.

Có cách nào (khác) mà bạn có thể làm cho lsdanh sách hiển thị các tệp ẩn trong một màu khác không?


Câu trả lời này có nhiều hơn bạn muốn biết LS_COLORS. Tôi không thể tìm ra cách để nó hoạt động cho dotfiles nhưng bạn có thể muốn kiểm tra nó.
terdon

1
@terdon - nó không hoạt động cho dotfiles. Nó có thể cho một số, nhưng rất ít. Có giới hạn về độ dài của phần mở rộng và hầu hết toàn bộ tên tệp sẽ vượt quá giới hạn. Nó sẽ làm việc cho các tập tin được đặt tên *.hidechẳng hạn. Câu trả lời này giải quyết một vấn đề tương tự cho các thư mục, mặc dù câu trả lời cho vấn đề này và vấn đề thư mục có thể không giống nhau.
mikeerv

Câu trả lời:


1

Nếu bạn chỉ sắp xếp theo tên, điều này có thể giúp:

alias ll='LS_COLORS=$LS_COLORS:"di=0;34:" ; S_COLORS=$LS_COLORS:"fi=0;37:" ; export LS_COLORS; ls -dHhl --color=auto .*; LS_COLORS=$LS_COLORS:"di=1;94:" ; LS_COLORS=$LS_COLORS:"fi=1;37:" ; export LS_COLORS$

Tuy nhiên, nó chia lệnh ls thành hai phần, một phần cho các tệp và thư mục ẩn, một phần còn lại.


0

Có, sử dụng cf. Tôi vừa phát hành một phiên bản có tài liệu tốt, nó đặc biệt tô màu đầu ra ls cho mỗi phần mở rộng tập tin và / hoặc các thuộc tính đặc biệt nhất định (thực thi, liên kết, ẩn và thư mục). Cho nó một phát !!! Thật khó để từ bỏ việc sử dụng này một khi bạn đã quen với nó.

https://github.com/AdamDanischewski/cf


-1

Nếu bạn chỉ muốn làm nổi bật các tệp ẩn (và thư mục) và bạn không quan tâm đến việc tô màu của tất cả các tệp khác, thì cách tiếp cận rõ ràng là chạy ls -la | grep -E "^| \.[^/|'.].*"

Nếu bạn muốn duy trì các màu khác, thì mọi thứ bắt đầu trở nên khó khăn, bởi vì $LS_COLORSnó không hỗ trợ màu sắc cho các tập tin ẩn như nó có vẻ.

Tôi đã nảy ra ý tưởng nối động các tệp ẩn của thư mục hiện tại vào $LS_COLORSbiến môi trường dưới dạng phần mở rộng giả, sau đó thực thi ls -lavà sau đó chạy dircolorsđể thiết lập lại lược đồ màu ban đầu. Rõ ràng sẽ có xung đột nếu một tệp ẩn có cùng tên với một phần mở rộng đã biết. Ngoài ra phương pháp này không hoạt động với các thư mục ẩn.

Cảnh báo: Giải pháp này là một hack (không được kiểm tra rất kỹ). Sử dụng nó có nguy cơ của riêng bạn.

for h in $(ls -A | grep "^\."); do LS_COLORS="$LS_COLORS*$h=04;05:"; done; ls -la; eval $(dircolors)

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.