7

Below is a sample of my dircolors file, I want subversion folders (.svn) to be colored, but i guess the extension section only applies to file names.

How do i set colors for directories with certain names?

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
2

1 Answer 1

5

I found a way:

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.  */

enter image description here

3
  • Notice that without modifying ls source code, what you are asking for is not possible. (See the first comment /* … */ above.) Commented Jul 31, 2011 at 0:01
  • Thanks, so i guess i won't be modifying the source code (i don't have that level of access on the machines at work.
    – Roy Rico
    Commented Jul 31, 2011 at 3:10
  • 1
    @Roy: There is nothing that prevents you from compiling your own ls and place it in your PATH. Quite easy: git clone git://git.sv.gnu.org/coreutils, edit one line of src/ls.c, ./bootstrap, ./configure, make, cp src/ls ~/bin, and you're done :-) Commented Jul 31, 2011 at 3:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .