Fügen Sie dem benutzerdefinierten ls-Alias Farbe hinzu
Frage
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 lassen kann?Auch wenn jemand die Syntax des Alias (nach der Pipe) erklären könnte?Ich habe den Text kopiert und versuche zu lernen, solche Befehle synthetisieren zu können.
Lösung
Standard ls
OSX kommt von BSD und erlaubt Ihnen nicht, das zu tun, was Sie wollen.
Wobei Kernelemente ls (installiert mit macport ist es mit dem verfügbar gls
Befehl)
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.- der
substr
gibt bei jedem Schritt eines der Zeichen zurück (inkrementierter Index, 1 zeichenlange Teilzeichenfolge) ~/[rwx]
konvertiert das Zeichen in 1, wenn es ein istr
oder einw
oder einx
- die Operation dahinter führt nur dazu, dass die Operation das dezimale Ergebnis erhält
print("%0o ", k)
druckt einfach das Oktalergebnis des zuvor berechneten Dezimalwerts
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit apple.stackexchange