Domanda

Ho creato un alias per visualizzare le autorizzazioni in formato OCTET:

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
}'
.

Ho anche impostato questo codice per visualizzare LS in un formato colorato:

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
.

Quello che mi chiedo, è come rendere il mio alias visualizzato anche in un formato colorato? Inoltre, se qualcuno potesse spiegare la sintassi dell'alias (dopo il tubo)?Ho copiato il testo e sto cercando di imparare ad essere in grado di sintetizzare i comandi come questo.

È stato utile?

Soluzione

Il ls predefinito fornito con OSX proviene da BSD e non ti permetterà di fare ciò che desideri.

Utilizzo CoreUtils ls (installato con Macport è disponibile con il comando gls) Otterrai i tuoi colori 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
}'
.


.

Informazioni sulla parte AWK:

    .
  • ls Ulteriori informazioni Autorizzazioni di file come 9 caratteri.Ecco perché c'è un ciclo.
  • Il substr restituisce ad ogni passaggio uno dell'indice CHAR (indice incrementato, sottostringa da 1 char-lunghezza)
  • ~/[rwx] converte il carattere su 1 se è un r o un w o un x
  • L'operazione dietro solo l'operazione è il risultato decimale
  • print("%0o ", k) stampa solo il risultato ottale del valore decimale calcolato prima di
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a apple.stackexchange
scroll top