Aggiungi colore all'alias ls personalizzato

1

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

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 aggiunto questo codice per visualizzare ls in un formato colorato:

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced

Quello che mi sto chiedendo, è come rendere il mio alias display anche in un formato colorato? Inoltre, se qualcuno potesse spiegare la sintassi dell'alias (dopo la pipe)? Ho copiato il testo e sto cercando di imparare a essere in grado di sintetizzare comandi simili.

    
posta user52470 09.12.2013 - 23:00
fonte

1 risposta

4

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

Usando CoreUtils ls (installato con macport è disponibile con il comando gls )

Riceverai 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 di awk:

  • ls restituisce i permessi dei file come 9 caratteri. Ecco perché c'è un ciclo.
  • il substr restituisce ad ogni passaggio uno dei caratteri (indice incrementato, 1 sottostringa di lunghezza char)
  • ~/[rwx] converte il char in 1 se è un r o un w o un x
  • l'operazione dietro fa semplicemente l'operazione ottenere il risultato decimale
  • print("%0o ", k) stampa solo il risultato ottale del valore decimale calcolato prima
risposta data 09.12.2013 - 23:50
fonte

Leggi altre domande sui tag