Sie können ls
als @Cyrus analysieren, der in den Kommentaren erwähnt wird. Ich schlage jedoch ein einfaches Skript vor, das Sie als ausführbare Datei erstellen können:
while read -r line do user=`echo "$line" | awk ''` name=`getent passwd "$user" | cut -d ':' -f 5 | cut -d ',' -f 1` echo $line | sed "s/$user/$name/" done < <(ls -lh | tail -n +2)
Die user
Variable ruft den Benutzernamen des Eigentümers ab (aus der 3. Spalte der ls-Ausgabe), name
erhält den tatsächlichen Namen dieses Benutzernamens, und in der Ausgabe von ls
ersetzen wir einfach den Benutzernamen durch den echten Namen sed
.
Ich habe es finger
in meinem Beispiel nicht verwendet, da das Parsing der /etc/passwd
Datei weniger fehleranfällig ist und Sie auch kein externes Werkzeug benötigen. ( finger
ist nicht standardmäßig unter Debian / Ubuntu installiert)
Beispielausgabe:
-rwxr-xr-x 1 Pavlin Nikolov fanatique 41 Aug 29 15:13 cpu.sh -rwxr-xr-x 1 Pavlin Nikolov fanatique 193 Aug 28 11:36 httpingwrap.sh -rwxr-xr-x 1 Pavlin Nikolov fanatique 3.8K Aug 14 15:36 imgconv.py -rwxr-xr-x 1 Pavlin Nikolov fanatique 504 Oct 19 16:04 lsp -rwxr-xr-x 1 Pavlin Nikolov fanatique 77 Aug 28 14:24 mg -rwxrwxrwx 1 Pavlin Nikolov fanatique 386 Sep 14 15:02 mon-install.sh -rwxr-xr-x 1 Pavlin Nikolov fanatique 589 Sep 11 11:55 ping-wrapper.py
Beachten Sie, dass dies nicht die am besten aussehende Ausgabe ist, da sie nicht perfekt ausgerichtet ist, aber dennoch funktionieren sollte.