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.

Était-ce utile?

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 un r ou un w ou un x
  • 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
scroll top