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

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

  • Notice that without modifying ls source code, what you are asking for is not possible. (See the first comment /* … */ above.) Jul 31 '11 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
    Jul 31 '11 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 :-) Jul 31 '11 at 3:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.