Sử dụng dircolors, làm cách nào để thay đổi màu của các thư mục lật đổ của tôi


7

Dưới đây là một mẫu của tập tin dircolors của tôi, tôi muốn các thư mục subversion (.svn) được tô màu, nhưng tôi đoán phần mở rộng chỉ áp dụng cho tên tệp.

Làm cách nào để đặt màu cho thư mục có tên nhất định?

NORMAL 00   # global default, although everything should be something.
FILE   00   # normal file
DIR    35   # directory
LINK   01;36    # symbolic link
FIFO   40;33    # pipe
SOCK   01;35    # socket
BLK    40;33;01 # block device driver
CHR    40;33;01 # character device driver

# This is for files with execute permission:
EXEC 01;32

# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')
*~    01;33;41 # stuff we hate to find laying around (flashing red)
.svn  37
.cmd  01;32 # executables (bright green)
.exe  01;32
.com  01;32
.btm  01;32

HĐH gì? Tôi không quen thuộc với dircolors.
Chris Trang

Câu trả lời này stackoverflow.com/a/11288821/754997 sử dụng tập lệnh Perl để tô màu đầu ra từ ls. Sau đó, bạn sử dụng tập lệnh đó thay vì ls.
Trang Chris

Câu trả lời:


5

Tôi tìm thấy một cách:

diff --git a/src/ls.c b/src/ls.c
index 680a7c3..d316eb6 100644
--- a/src/ls.c
+++ b/src/ls.c
@@ -4226,7 +4226,7 @@ print_color_indicator (const struct fileinfo *f, bool symlink_target)

   /* Check the file's suffix only if still classified as C_FILE.  */
   ext = NULL;
-  if (type == C_FILE)
+  if (type == C_FILE || type == C_DIR)
     {
       /* Test if NAME has a recognized suffix.  */

nhập mô tả hình ảnh ở đây


Lưu ý rằng không sửa đổi lsmã nguồn, những gì bạn đang yêu cầu là không thể. (Xem bình luận đầu tiên /* … */ở trên.)
Stéphane Gimenez

Cảm ơn, vì vậy tôi đoán tôi sẽ không sửa đổi mã nguồn (tôi không có mức truy cập đó trên máy tại nơi làm việc.
Roy Rico

1
@Roy: Không có gì ngăn cản bạn biên dịch lsvà đặt nó trong PATH của bạn. Khá dễ dàng: git clone git://git.sv.gnu.org/coreutils, chỉnh sửa một dòng src/ls.c, ./bootstrap, ./configure, make, cp src/ls ~/bin, và bạn đã hoàn tất :-)
Stéphane Gimenez
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.