Shell Dircolors and dot directory question

Is it possible for a directory 'foo' and a '.foo' to use different colors (say dark blue and light_blue respectively, for example) with dircolors?
Couldn't find anything in manpage or on web so far. Figured I would ask here...
Thanks in advance!
 
Is it possible for a directory 'foo' and a '.foo' to use different colors (say dark blue and light_blue respectively, for example) with dircolors? […]
Welcome to the FreeBSD forums. 👋 No, dircolors(1) merely crafts various environment variables, so
  • dircolors(1) must allow you to specify different colors depending on a file name prefix (the ., I only see suffix matching), and
  • the respective directory listing utility implementation must recognize a color specification for “hidden” files.
Regarding the latter, FreeBSD’s utility ls(1) does not support that. There are 11 colorization categories. They are documented in the manual page and you can confirm them by taking a look at /usr/src/bin/ls/print.c. A distinction based on file name is not implemented.​
Have a look at sysutils/exa, […]
I could not readily find the option of colorizing depending on a file name prefix. Are you sure this is supported nonetheless?​
 
Have a look at sysutils/exa, "A modern replacement for ls." (in any shell).

Custom

EDIT:
Using exa myself, but never though about painting dot directories in another color. Looking through docs I'm not sure if exa can do that.

I've noticed on Github exa is not maintained anymore, the fork sysutils/eza should be used instead. Maybe eza can colorize dot directories. I will have a look at it.
Curious George here, can you tell me a little about why you are using exa, what was missing for you with ls? Heard about exa now *multiple times*(edit) in too short time span to not wonder :)
 
Since .names are ment to be the "hidden" ones, not shown by a default ls
but only if you add an a to ls' options,
there seems no need for having an additional-extra distinction.

However:
Additionally to what T-Daemon linked, this day on HN came yet another alternative to ls up:
eza
I checked it's in the ports tree; could be installed simply by a pkg install.
But I don't know if this satisfys your needs.
I'm quite happy with the "old'n'boring" ls, since it does all I need.
 
You're not mentioning a shell...
I could script it in bash without the need of any settings. Process a long ls output per line and printf in different colors if a filename starts with a dot. No idea how to get ansi colors in csh, though.
 
No idea how to get ansi colors in csh, though.
Kai Burghardt pointed it out already, but maybe not comprehandable if one didn't look at the man-pages (he also linked.)
ls does the colors, not the shell.
The shell has to set the environment variables within its config file, e.g. in ~/.cshrc for (t)csh:
setenv CLICOLOR 1
setenv LSCOLORS "xefxcxdxbxegedabagacad"
(default)
the second line lets you define all colors for the 11 cases ls distinguishs,
but there is no distinction for dot-files, for presumbly the reason I mentioned.
 
With zsh i have
Code:
export CLICOLOR
export COLORFGBG="15;0"
export COLORTERM="truecolor"
export LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:"
export TERM="xterm-256color"
export CLICOLOR="yes"
 
Have a look at sysutils/exa, "A modern replacement for ls." (in any shell).

Custom

EDIT:
Using exa myself, but never though about painting dot directories in another color. Looking through docs I'm not sure if exa can do that.

I've noticed on Github exa is not maintained anymore, the fork sysutils/eza should be used instead. Maybe eza can colorize dot directories. I will have a look at it.
🤔Heard of exa, not eza. Will look into. Thank you!
You're not mentioning a shell...
I could script it in bash without the need of any settings. Process a long ls output per line and printf in different colors if a filename starts with a dot. No idea how to get ansi colors in csh, though.
Oh, yeah. Forgot to mention 😅. Using bash.
Well figured I would ask.
Thanks again, to all!
 
Curious George here, can you tell me a little about why you are using exa, what was missing for you with ls? Heard about exa now *multiple times*(edit) in too short time span to not wonder :)
Sorry for late reply.

exa/eza has file specific colorization by default, Custom colors can be added or default colors overridden. I find it helpful to identify certain files highlighted by colors.

Files sizes in b, kb, mb, gb are highlighted as well in different colors. Between other user, group the own are highlighted.

Example:
eza01.png eza04.png

What I find most useful is the tree view. Showing an overview of all files in a directory, their sizes, file types highlighted.

Example (sysutils/tree in comparison):
eza02.png eza03.png

exa/eza commands and options are executed by aliases in real application, here for demonstration in full.

Many find colorized output distractive, I find it helpful to spot what I'm looking for faster.
 
Many find colorized output distractive, I find it helpful to spot what I'm looking for faster.
Me, too.
Most interesting to me, is that those also distinguish the file permissions, and also have own colours to additionally distinguish text from pictures, etc.
On the other hand, too many colors can produce more confusion as clearing up.
But that's of course absolutly personal taste.
I need to check it out by myself to decide.

Thanks again for the screenshots.
 
Back
Top