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
. 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.ls
tutlstat()
(undreadlink
für Symlinks), es sei denn, Sie verwenden die-L
Option (in diesem Fall verwendet esstat()
)S_ISLNK(st_mode)
auch true via zurückgegeben wirdstat()
, aber das tut es nicht - es tut es nur vialstat()
. Außerdem gibt ISLNK über stat nicht true zurück, selbst wenn der Link ein Link zu einem Link ist. Das bedeutet, dass diesISLNK
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ückgegebenstat
wird, ist niemals ein Symlink.stat()
Ich werde dir niemals etwas über Symlinks erzählen, genauso wieopen
ich niemals den Symlink öffnenchmod()
werde oder die Berechtigungen eines Symlinks nicht ändern werde ... usw.Antworten:
Nein, aber wenn Sie verwenden
zsh
, können Sie Folgendes tun:Sie können auch eine Sortierreihenfolge wie folgt definieren:
und benutze es wie:
Auf diese Weise können Sie es für andere Befehle als
ls
oderls
mit anderen Optionen oder für verschiedene Muster wie:oder:
Wenn Sie verwenden müssen
bash
, wäre das Äquivalent wie folgt:bash
Es gibt keine Globbing-Qualifikationsmerkmale oder eine Möglichkeit, die Sortierreihenfolge von Globs zu beeinflussen oder Nullglob pro Glob zu aktivieren, oder es gibt keinen lokalen Kontext für Optionen (außer dem Starten einer Subshell, daher die AFAIK()
anstelle von{}
oben) .quelle
bash
?