Wofür steht "ls --directory"?

16

In meiner Ubuntu-Version hat der Mann die nächste Info über --directory:

list directory entries instead of contents, and do not dereference symbolic links

Also bin ich ein bisschen verwirrt, wie es funktioniert. Ich habe den Befehl benutzt ls --directoryund eine Liste mit allen Verzeichnissen erwartet, aber stattdessen habe ich bekommen.

Also, was genau macht ls --directoryoder ls -dmacht?

Pau Chorro
quelle

Antworten:

24
$ man ls
...
-d, --directory
              list directories themselves, not their contents

Das aktuelle Verzeichnis wird .so dargestellt, dass es sich ls -dum eine Auflistung handelt.

Die Verzeichnisse im aktuellen Verzeichnis sind Inhalte des Verzeichnisses und werden daher bei dieser Option nicht angezeigt.

Ich benutze die -dOption in einem Alias, um versteckte Dateien und Verzeichnisse anzuzeigen

alias l.='ls -dC .* --color'

Ohne -dlistet dies auch den Inhalt der versteckten Verzeichnisse auf, was ich nicht will.

Eine andere Verwendung ist, wenn ich die Metadaten eines Verzeichnisses mit der -lOption und nicht mit dem Inhalt anzeigen möchte :

$ ls -ld playground
drwxr-xr-x 72 zanna zanna 12288 Mar  1 23:10 playground

Wenn Sie eine Liste der Verzeichnisse im aktuellen Verzeichnis möchten, können Sie verwenden

ls -d */
Zanna
quelle
ls -dC .* --colorlistet auch versteckte Dateien auf, nicht nur Verzeichnisse.
Pau Chorro
1
yes @PauChorro Das sage ich eigentlich in meiner Antwort. Ich benutze es, um alle versteckten Dateien und Verzeichnisse anzuzeigen
Zanna
1
@PauChorro Ich habe eine Möglichkeit hinzugefügt, nur Verzeichnisse
Zanna
1
In meiner Ubuntu - Version das man lshat die nächste Info: list directory entries instead of contents, and do not derefer‐ ence symbolic links. Also in Ihrer Version ist eine bessere Erklärung, was es wirklich tut.
Pau Chorro
1
@ Pilot6 wird es auch Dateien auflisten
Zanna
11

Verwenden Sie lsnur mit -dist fast nutzlos. Es gibt Informationen über das Verzeichnis selbst. Der Inhalt wird nicht aufgelistet.

Aus diesem Grund wird keine Verzeichnisliste angezeigt. Die Verzeichnisse, die Sie erwartet haben, sind der "Inhalt" des aktuellen Verzeichnisses

Wenn Sie einfach ausführen ls -d, wird das aktuelle Verzeichnis von angezeigt ..

Wenn es Sinn macht, es mit anderen Schlüsseln wie auszuführen -l.

ls -ld Zeigt die Berechtigungen des aktuellen Verzeichnisses an.

pilot6@Pilot6:~$ ls -ld
drwxrwxr-x 1 pilot6 pilot6 2570 Mar  4 12:14 .

Sie können auch Berechtigungen von jedem anderen Verzeichnis wie sehen

ls -ld /bin

pilot6@Pilot6:~$ ls -ld /bin
drwxr-xr-x 1 root root 2584 Feb 25 15:19 /bin

Wenn Sie ls -lohne ausgeführt -dwerden, haben Sie die Liste aller Berechtigungen für Dateien und Ordner im aktuellen Verzeichnis. Wenn Sie es nicht benötigen, ist dies ein gutes Beispiel für die ls -ldVerwendung.

Sie können Verzeichnisse im aktuellen Verzeichnis nach auflisten

ls -d */
Pilot6
quelle
6

Die Verwendung ls -dvon allein ist ziemlich nutzlos, da sie ohne Parameter immer zurückgibt .. Nachdem Sie einen Parameter angegeben haben, ist dies jedoch sinnvoll. Zum Beispiel, wenn Ihr Benutzername lautet rickund Sie alle Verzeichnisse in Ihrer Heimanwendung anzeigen möchten:

$ ls -d /home/rick/*/
/home/rick/AAC/        /home/rick/EnhanceIO/         /home/rick/silentcast/
/home/rick/assembly/   /home/rick/EnhanceIO-master/  /home/rick/Templates/
/home/rick/bin/        /home/rick/log/               /home/rick/test/
/home/rick/Desktop/    /home/rick/Music/             /home/rick/tmpe/
/home/rick/Documents/  /home/rick/Pictures/          /home/rick/Videos/
/home/rick/Downloads/  /home/rick/Public/
WinEunuuchs2Unix
quelle
5

Lassen Sie mich mit Beispielen erklären:

  1. ls: listet den Inhalt eines Verzeichnisses auf

  2. ls -doder ls --directory: Verzeichnisse selbst auflisten, nicht deren Inhalt

Beispiele:

ls -d android-sdk-linux/

# result
android-sdk-linux/

ls android-sdk-linux/

# result
add-ons  build-tools  platforms  platform-tools  SDK Readme.txt  temp  tools

In Ihrem Fall bedeutet ls -ddies, dass in der Liste nur das Verzeichnis angezeigt wird, in dem ich mich befinde, nicht der Inhalt (z. B. .in Linux-Begriffen) ..

Aber wenn Sie gesagt haben:, lsdann sehen Sie alles, was im aktuellen Verzeichnis vorhanden ist ..

George Udosen
quelle
4

ls -dListen Sie die Verzeichnisse selbst auf, anstatt deren Inhalt. Dateien werden wie gewohnt aufgelistet. Sehen Sie man lssich die Beschreibung aller Optionen an.

. Ist das eigene Verzeichnis, das Sie auch verwenden, wenn Sie einen Befehl aus dem aktuellen Verzeichnis ausführen. ./runscript.sh

..ist das übergeordnete Verzeichnis, das übergeordnete Verzeichnis zum aktuellen Verzeichnis, cd ..um in der Verzeichnishierarchie schrittweise nach oben zu wechseln

Soren A
quelle