Creé un alias para mostrar los 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 agregué 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, si alguien pudiera 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.
El valor predeterminado ls
provisto con OSX proviene de BSD y no le permitirá hacer lo que quiera.
Usando CoreUtils ls (instalado con macport, está disponible con el gls
comando)
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
}'
Sobre la parte awk:
ls
emite permisos de archivo como 9 caracteres. Por eso hay un bucle.substr
retornos en cada paso uno de los caracteres (índice incrementado, 1 subcadena de longitud de caracteres)~/[rwx]
convierte el carácter a 1 si es a r
o a w
o ax
print("%0o ", k)
simplemente imprime el resultado octal del valor decimal calculado antes