ls
Option --group-directories-first
bewirkt, dass Verzeichnisse oben aufgelistet werden, wodurch die Ausgabe von ls
schön und sauber wird:
ls -l --group-directories-first
Es wirkt jedoch nicht auf symlinks
die tatsächlich symlinks
zu Verzeichnissen. Es besteht die Möglichkeit zu verwenden
ls -l -L --group-directories-first
Dadurch werden beide Arten von Verzeichnissen oben aufgelistet, es wird jedoch nicht zwischen dem richtigen Verzeichnis und dem verknüpften Verzeichnis unterschieden, was wiederum verwirrend ist.
Können ls
symlinkierte Verzeichnisse oben angezeigt werden, ohne dass sie sich von regulären Verzeichnissen unterscheiden?
EDIT:
Ich benutze bash
.
ls
tut lstat()
(und readlink
für Symlinks), es sei denn, Sie verwenden die -L
Option (in diesem Fall verwendet es stat()
)
S_ISLNK(st_mode)
auch true via zurückgegeben wird stat()
, aber das tut es nicht - es tut es nur via lstat()
. Außerdem gibt ISLNK über stat nicht true zurück, selbst wenn der Link ein Link zu einem Link ist. Das bedeutet, dass dies ISLNK
möglicherweise nie über stat zurückgegeben wird, obwohl dies nicht spezifiziert ist ...
stat
gibt Ihnen die Eigenschaften der Datei am Ende der Symlinks an. Wenn dies nicht vorhanden ist oder nicht zugänglich ist, stat
gibt das ENOENT zurück. Was also von zurückgegeben stat
wird, ist niemals ein Symlink. stat()
Ich werde dir niemals etwas über Symlinks erzählen, genauso wie open
ich niemals den Symlink öffnen chmod()
werde oder die Berechtigungen eines Symlinks nicht ändern werde ... usw.
ls
. Gemäß demstat()
Systemaufruf ist eine symbolische Verknüpfung zu einem Verzeichnis immer noch ein Verzeichnis (S_ISDIR(st_mode)
gibt true zurück). Offensichtlich werdenls
die Symlinks reduziert, bevor dies überprüft wird.