lsOption --group-directories-firstbewirkt, dass Verzeichnisse oben aufgelistet werden, wodurch die Ausgabe von lsschön und sauber wird:
ls -l --group-directories-first
Es wirkt jedoch nicht auf symlinksdie tatsächlich symlinkszu 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 lssymlinkierte Verzeichnisse oben angezeigt werden, ohne dass sie sich von regulären Verzeichnissen unterscheiden?
EDIT:
Ich benutze bash.
lstut lstat()(und readlinkfür Symlinks), es sei denn, Sie verwenden die -LOption (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 ISLNKmöglicherweise nie über stat zurückgegeben wird, obwohl dies nicht spezifiziert ist ...
statgibt Ihnen die Eigenschaften der Datei am Ende der Symlinks an. Wenn dies nicht vorhanden ist oder nicht zugänglich ist, statgibt das ENOENT zurück. Was also von zurückgegeben statwird, ist niemals ein Symlink. stat()Ich werde dir niemals etwas über Symlinks erzählen, genauso wie openich 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 werdenlsdie Symlinks reduziert, bevor dies überprüft wird.