Ajouter de la couleur à l'alias ls personnalisé
Question
J'ai créé un alias pour afficher les autorisations au format 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
}'
J'ai également ajouté ce code pour afficher ls dans un format coloré :
export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
Ce que je me demande, c'est comment faire en sorte que mon alias s'affiche également dans un format coloré ?Aussi, si quelqu'un pouvait expliquer la syntaxe de l'alias (après le tube) ?J'ai copié le texte et j'essaie d'apprendre à synthétiser des commandes comme celle-ci.
La solution
Le défaut ls
fourni avec OSX vient de BSD et ne vous permettra pas de faire ce que vous voulez.
En utilisant CoreUtils ls (installé avec macport, il est disponible avec le gls
commande)
Vous obtiendrez vos couleurs en utilisant --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
}'
À propos de la partie awk :
ls
affiche les autorisations de fichier sous forme de 9 caractères.C'est pourquoi il y a une boucle.- le
substr
renvoie à chaque étape un des caractères (index incrémenté, sous-chaîne de 1 caractère) ~/[rwx]
convertit le caractère en 1 si c'est unr
ou unw
ou unx
- l'opération derrière fait juste l'opération pour obtenir le résultat décimal
print("%0o ", k)
imprime simplement le résultat octal de la valeur décimale calculée avant
Licencié sous: CC-BY-SA avec attribution
Non affilié à apple.stackexchange