Ich habe einen Alias erstellt, um Berechtigungen im Oktettformat anzuzeigen:
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
}'
Ich habe auch diesen Code hinzugefügt, um ls in einem farbigen Format anzuzeigen:
export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
Was ich mich frage, ist, wie ich meinen Alias auch in einem farbigen Format anzeigen kann? Auch, wenn jemand die Syntax des Alias (nach der Pipe) erklären könnte? Ich habe den Text kopiert und versuche zu lernen, wie man Befehle wie diesen synthetisieren kann.
Die ls
mit OSX bereitgestellte Standardeinstellung stammt von BSD und erlaubt Ihnen nicht, das zu tun, was Sie wollen.
Verwenden von CoreUtils ls (mit Macport installiert, ist mit dem gls
Befehl verfügbar)
Sie erhalten Ihre Farben mit --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
}'
Über den awk-Teil:
ls
gibt Dateiberechtigungen als 9 Zeichen aus. Deshalb gibt es eine Schleife.substr
gibt bei jedem Schritt einen der Zeichen zurück (inkrementierter Index, Teilzeichenfolge mit 1 Zeichenlänge)~/[rwx]
wandelt das Zeichen in 1 um, wenn es a r
oder a w
oder a istx
print("%0o ", k)
druckt nur das Oktalergebnis des zuvor berechneten Dezimalwerts