Agregar color al alias ls personalizado
Pregunta
Creé un alias para mostrar permisos en formato de octeto:
alias lso="ls -l | awk '
{
k=0;
for (i=0;i<=8;i++)
k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));
if (k)
printf("%0o ",k);
print
}'
También configuré agregado este código para mostrar ls en un formato de color:
export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
Lo que me pregunto es cómo hacer que mi alias se muestre también en un formato de color.Además, ¿alguien podría explicar la sintaxis del alias (después de la tubería)?Copié el texto y estoy tratando de aprender a poder sintetizar comandos como este.
Solución
El valor por defecto ls
proporcionado con OSX proviene de BSD y no le permitirá hacer lo que quiera.
Usando CoreUtils ls (instalado con macport, está disponible con el gls
dominio)
Obtendrás tus colores usando --color=always
:
ls -l --color=always | awk '
{
k=0;
for (i=0;i<=8;i++)
k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));
if (k)
printf("%0o ",k);
print
}'
Acerca de la parte awk:
ls
genera permisos de archivos de 9 caracteres.Por eso hay un bucle.- el
substr
devuelve en cada paso uno de los caracteres (índice incrementado, subcadena de 1 longitud de carácter) ~/[rwx]
convierte el carácter a 1 si es unr
o unw
o unx
- la operación detrás simplemente hace la operación y obtiene el resultado decimal
print("%0o ", k)
simplemente imprime el resultado octal del valor decimal calculado antes
Licenciado bajo: CC-BY-SA con atribución
No afiliado a apple.stackexchange