Hi, I have a Vista share visible in Ubuntu but I which to make the BASH color highlighting of the directories/files the same as if it were a local dir/file. How would I go about doing this?
Many thanks!
Hi, I have a Vista share visible in Ubuntu but I which to make the BASH color highlighting of the directories/files the same as if it were a local dir/file. How would I go about doing this?
Many thanks!
This is not bash, but ls. The environment variable LS_COLORS determines colorization behavior for ls. on my machine:
Each colon separated specifier indicates a kind of file / directory, and the color for display. Here is a good rundown of how LS_COLORS specifications work.
justin@information-density:~$ echo $LS_COLORS
no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:.tar=01;31:.tgz=01;31:.svgz=01;31:.arj=01;31:.taz=01;31:.lzh=01;31:.lzma=01;31:.zip=01;31:.z=01;31:.Z=01;31:.dz=01;31:.gz=01;31:.bz2=01;31:.bz=01;31:.tbz2=01;31:.tz=01;31:.deb=01;31:.rpm=01;31:.jar=01;31:.rar=01;31:.ace=01;31:.zoo=01;31:.cpio=01;31:.7z=01;31:.rz=01;31:.jpg=01;35:.jpeg=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:.mng=01;35:.pcx=01;35:.mov=01;35:.mpg=01;35:.mpeg=01;35:.m2v=01;35:.mkv=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:.gl=01;35:.dl=01;35:.xcf=01;35:.xwd=01;35:.yuv=01;35:.aac=00;36:.au=00;36:.flac=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:
If I'm remembering correctly, this happens because the special bits that ls
looks at to determine file type (exec bit, dir bit, etc) are specific to Linux-style file systems. To verify this, mount a NTFS filesystem (or whatever type you are mounting over Samba) on your local machine and see if you get the same coloring behavior from ls
.
When you mount a windows share it gives every file/directory the same permissions. Windows doesn't have the same permissions structure as un*x and so it adds the execute permission to every file by default. The LS_COLORs environment variable (used by "ls") gives executable files the green colour.
You can alter the umask settings in the mount options so that the execute flag is not set:
mount -t smbfs -o username=USER,password=PASS,umask=111 //server/share /mnt/share
The files will then pick up the next colour precedence usually from the extension which will take you some way to achieving the results you want.