1273 Stimmen

Auflistung nur Verzeichnisse mit ls in Bash?

Dieser Befehl listet Verzeichnisse im aktuellen Pfad auf:

ls -d */

Was genau bedeutet das Muster */ tun?

Und wie können wir den absoluten Pfad im obigen Befehl angeben (z. B. ls -d /home/alice/Documents ), um nur Verzeichnisse in diesem Pfad aufzulisten?

7voto

wholanda Punkte 71

So zeigen Sie Ordnerlisten ohne / :

ls -d */|sed 's|[/]||g'

4voto

nmarques Punkte 131

Prüfen, ob das Element ein Verzeichnis mit test -d :

for i in $(ls); do test -d $i && echo $i ; done

4voto

AVS Punkte 141
file * | grep directory

Ausgabe (auf meinem Rechner) --

[root@rhel6 ~]# file * | grep directory
mongo-example-master:    directory
nostarch:                directory
scriptzz:                directory
splunk:                  directory
testdir:                 directory

Die obige Ausgabe lässt sich durch die Verwendung der folgenden Methoden weiter verfeinern schneiden :

file * | grep directory | cut -d':' -f1
mongo-example-master
nostarch
scriptzz
splunk
testdir

* could be replaced with any path that's permitted
 file - determine file type
 grep - searches for string named directory
 -d - to specify a field delimiter
 -f1 - denotes field 1

3voto

warfreak92 Punkte 304

Zu Ihrer Information: Wenn Sie alle Dateien mehrzeilig drucken möchten, können Sie eine ls -1 die jede Datei in einer eigenen Zeile ausgibt. Datei1 Datei2 Datei3

3voto

Robin A. Meade Punkte 1336

*/ ist ein Muster für den Abgleich von Dateinamen, das mit Verzeichnissen im aktuellen Verzeichnis übereinstimmt.

Um nur Verzeichnisse aufzulisten, finde ich diese Funktion gut:

# Long list only directories
llod () {
  ls -l --color=always "$@" | grep --color=never '^d'
}

Stecken Sie es in Ihr .bashrc fichier.

Beispiele für den Gebrauch:

llod       # Long listing of all directories in current directory
llod -tr   # Same but in chronological order oldest first
llod -d a* # Limit to directories beginning with letter 'a'
llod -d .* # Limit to hidden directories

Hinweis: Die Funktion wird unterbrochen, wenn Sie die -i Option. Hier ist eine Lösung für dieses Problem:

# Long list only directories
llod () {
  ls -l --color=always "$@" | egrep --color=never '^d|^[[:digit:]]+ d'
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X