Gibt es eine Möglichkeit, nur die Ordner in einem Verzeichnis mit Bash-Befehlen aufzulisten? (da der ls
Befehl alle Dateien und Ordner auflistet)
linux
command-line
ls
SpiXel
quelle
quelle
ls -d -- */
undls -d */
?--
wird üblicherweise verwendet, um das Ende von Optionen zu markieren, sodass eine Datei mit dem Namen-l
ls nicht als Formatoption für lange Auflistungen interpretiert wird.Stephen Martins Antwort warnte und listete auch den aktuellen Ordner auf, also würde ich vorschlagen
(Dies ist unter Linux. Ich konnte -maxdepth und -mindepth in der POSIX-Manpage für find nicht finden.)
quelle
ls -d -- */
Option, dafind
auch versteckte Wege zu finden sind. Das kann manchmal nützlich sein, aber auch manchmal Probleme verursachen. Ich hoffe, dieser Kommentar könnte anderen helfen. +1Listet nur Ordner auf. Und wie Teddy hervorhob, brauchst du -maxtiefe, um die Wiederverwendung in Unterverzeichnisse zu verhindern
quelle
-maxdepth 1
auch.Daniels Antwort ist richtig. Hier sind jedoch einige nützliche Ergänzungen.
Um zu vermeiden, dass versteckte Ordner (wie
.git
) angezeigt werden, versuchen Sie Folgendes:Gehen Sie wie folgt vor, um den gefürchteten Punkt-Schrägstrich zu Beginn der
find
Ausgabe in einigen Umgebungen zu ersetzen :quelle
Sie sollten die Ausgabe von ls "nicht analysieren", oder so wird gesagt. Die Argumentation dahinter ist, dass die Ausgabe für Menschen lesbar sein soll und das Parsen unnötig kompliziert machen kann, wenn ich mich recht entsinne.
Wenn Sie ls oder find nicht möchten, können Sie versuchen, "*" mit "[-d]" zu filtern.
Ich habe genau das getan, aus irgendeinem Grund funktionierten ls und find nicht (Dateinamen mit Leerzeichen und Klammern, denke ich, oder etwas anderes, das ich übersah), dann habe ich etwas in der Art von
quelle
Nur um etwas zu betonen, das mich hier draußen in Bezug auf die Auswahl der Glob-Muster verwirrt hat; sag du hast das:
Angenommen, Sie möchten hier nur
mydir*
Verzeichnisse auswählen . Beachten Sie, dass, wenn Sie den abschließenden Schrägstrich weglassen,ls -d
auch Dateien aufgelistet werden:... mit einem abschließenden Schrägstrich werden jedoch nur Verzeichnisse aufgelistet:
quelle
printf "%s\n" */
listet alle Verzeichnisse im $ PWD auf.echo */
wird auch funktionieren, aber in einer langen einzeiligen, schwieriger, wenn Namen Leerzeichen haben.quelle
Sie können auch verwenden:
Oder:
quelle