¿Qué significan los diferentes colores en ls?
¿Qué significan los diferentes colores del comando ls
de Ubuntu? Por ejemplo, cuando escribo el comando ls
en una de mis carpetas, obtengo uno de los archivos en verde claro, el otro (que es una carpeta) en azul con resaltado verde.
¿Qué significan esos colores, y hay algún manual sobre todos los colores?
371
3
Para su información:
Para desactivar el color, tienes que comentar las siguientes líneas en
.bashrc
.También si quieres ver tus propios significados de color en bash, entonces copia/pega los siguientes códigos en tu terminal.
Salida:
Nota:
man dir_colors
en el terminal.Puedes saber qué colores utiliza
ls
mirando la variable$LS_COLORS
:Además, los archivos se colorean por atributos:
aac, au, flac, mid, midi, mka, mp3, mpc, ogg, ra, wav, axa, oga, spx, xspf.
tar, tgz, arj, taz, lzh, lzma, tlz, txz, zip, z, Z, dz, gz, lz, xz, bz2, bz, tbz, tbz2, tz, deb, rpm, jar, rar, ace, zoo, cpio, 7z, rz.
jpg, jpeg, gif, bmp, pbm, pgm, ppm, tga, xbm, xpm, tif, tiff, png, svg, svgz, mng, pcx, mov, mpg, mpeg, m2v, mkv, ogm, mp4, m4v, mp4v, vob, qt, nuv, wmv, asf, rm, rmvb, flc, avi, fli, flv, gl, dl, xcf, xwd, yuv, cgm, emf, axv, anx, ogv, ogx.
Toda esta información está contenida en la salida de
dircolors --print-database
, pero su formato es bastante ilegible.Aquí'hay una explicación técnica de lo que'sucede:
Ejemplo:
El código de colores consta de tres partes:
La primera parte antes del punto y coma representa el estilo del texto.
La segunda y tercera parte son el color y el color de fondo:
Cada parte se puede omitir, suponiendo que se empieza por la izquierda. es decir, "01" significa negrita, "01;31" significa negrita y rojo. Y conseguirías que tu terminal imprimiera en color escapando la instrucción con
\33[
y terminándola con unam
. 33, o 1B en hexadecimal, es el signo ASCII "ESCAPE" (un carácter especial en el conjunto de caracteres ASCII). Ejemplo:Imprime "Hola Mundo" en rojo brillante.
El comando
ls
con el argumento--color=auto
(en Ubuntu,ls
es un alias dels --color=auto
) recorre todos los nombres de archivo e intenta primero coincidir con los diferentes tipos, como Executable, Pipe, etc. Luego intenta coincidir con expresiones regulares como *.wav e imprime el nombre de archivo resultante, encerrado en estas instrucciones de cambio de color para bash.Si escribe
dircolors
(echo $LS_COLORS
también funciona) desde la línea de comandos obtendrá una lista de códigos y colores para muchos tipos de archivos en 1 línea. dircolors --print-database` los muestra de una en una. Aquí hay una pequeña lista (he intentado poner los más importantes). Al final hay una explicación sobre lo que representan los diferentes códigos al final de cada línea:00=ninguno 01=negrita 04=subrayado 05=parpadeo 07=inverso 08=oculto
30=negro 31=rojo 32=verde 33=amarillo 34=azul 35=magenta 36=ciano 37=blanco
40=negro 41=rojo 42=verde 43=amarillo 44=azul 45=magenta 46=ciano 47=blanco
Si quieres jugar con esto aquí tienes un ejemplo de cómo establecer un color para un archivo:
Esto pondrá
*.ogg
y.mp3
ennegrita magenta
. Y si lo pones en tu archivo.bashrc
será permanente.