Ich bin mir der ls
Option bewusst --group-directories-first
, aber das ist nicht unbedingt das, was ich erreichen möchte.
Die Ausgabe sollte wie folgt aussehen: (nach Namen ASC sortiert)
- Verzeichnisse
- Versteckte Verzeichnisse
- Versteckte Dateien
Antwort1
Mit GNU ls
(die -U
Option, ls
die Dateiliste nicht zu sortieren, ist eine GNU-Erweiterung):
ls -lUd -- *(/) .*(/) .*(^/)
Das Problem besteht jedoch darin, dass der Befehl abgebrochen wird, wenn einer dieser Globs nicht übereinstimmt. Sie könnten also Folgendes tun:
myls() (
setopt cshnullglob
ls -lUd -- *(/) .*(/) .*(^/)
)
Dies emuliert das csh
Verhalten, bei dem Globs ohne Übereinstimmung zu nichts expandiert werden, solange es mindestens einen Glob im Befehl gibt, der zu etwas expandiert.
Beachten Sie, dass zsh
Globs .
und nie erweitert werden ..
, sodass diese beiden nie eingeschlossen werden.