1 votos

Agregar color a los alias personalizados de ls

He creado 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 he añadido este código para mostrarlo 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 pipa) He copiado el texto y estoy tratando de aprender a ser capaz de sintetizar comandos como este.

4voto

Satanicpuppy Puntos 4902

El defecto ls que se proporciona con OSX viene de BSD y no le permitirá hacer lo que quiera.

Usando CoreUtils ls (instalado con macport está disponible con el gls comando)

Conseguirá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 de la torpeza:

  • ls da como resultado permisos de archivo de 9 caracteres. Por eso hay un bucle.
  • el substr devuelve en cada paso uno de los caracteres (índice incrementado, 1 subcadena de longitud de caracteres)
  • ~/[rwx] convierte el char a 1 si es un r o un w o un x
  • la operación detrás sólo hace la operación para obtener el resultado decimal
  • print("%0o ", k) sólo imprime el resultado octal del valor decimal calculado antes de

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X