Co oznacza `ls --directory`?


17

W mojej wersji Ubuntu man ls ma następną informację o --directory:

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

Więc jestem trochę zdezorientowany, jak to działa. Użyłem polecenia ls --directoryi spodziewałem się listy ze wszystkimi katalogami, ale zamiast tego dostałem.

Co dokładnie robi ls --directorylub ls -drobi?

Odpowiedzi:


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

Bieżący katalog jest reprezentowany w ten .sposób, że to ls -djest lista.

Katalogi w bieżącym katalogu są zawartością katalogu i dlatego nie są wyświetlane z tą opcją.

Korzystam z -dopcji w aliasie, aby wyświetlać ukryte pliki i katalogi

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

Bez -dtego wyświetli również zawartość ukrytych katalogów, czego nie chcę.

Innym zastosowaniem jest to, gdy chcę zobaczyć metadane katalogu przy użyciu -lopcji, a nie jej zawartości:

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

Jeśli chcesz listę katalogów w bieżącym katalogu, możesz użyć

ls -d */

ls -dC .* --colorzawiera również listę ukrytych plików, nie tylko katalogów.
Pau Chorro,

1
tak @PauChorro Właściwie to mówię w mojej odpowiedzi. Używam go do wyświetlania wszystkich ukrytych plików i katalogów
Zanna

1
@PauChorro Dodałem sposób, aby wyświetlić tylko katalogi
Zanna

1
W mojej wersji Ubuntu man lsma kolejną informację: list directory entries instead of contents, and do not derefer‐ ence symbolic links. Więc w twojej wersji jest lepsze wyjaśnienie tego, co naprawdę robi.
Pau Chorro

1
@ Pilot6 także wyświetli listę plików
Zanna

11

Używanie lstylko z -djest prawie bezużyteczne. Daje informacje o samym katalogu. Nie wyświetla jego zawartości.

Dlatego nie widzisz listy katalogów. Katalogi, które powinny być widoczne, to „zawartość” bieżącego katalogu

Jeśli uruchomisz ls -d, pokaże bieżący katalog według ..

Jeśli ma sens uruchomienie go z innymi kluczami, takimi jak -l.

ls -ld pokaże uprawnienia do bieżącego katalogu.

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

Możesz także zobaczyć uprawnienia do dowolnego innego katalogu, takiego jak

ls -ld /bin

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

Jeśli uruchomisz ls -lbez -d, będziesz mieć listę wszystkich uprawnień do plików i folderów w bieżącym katalogu. Jeśli nie jest to potrzebne, jest to dobry przykład ls -ldużycia.

Możesz wyświetlić katalogi w bieżącym według

ls -d */

6

ls -dSamo użycie jest dość bezużyteczne, ponieważ bez parametru zawsze zwraca .. Po określeniu parametru ma to jednak sens. Na przykład, jeśli Twoja nazwa użytkownika to ricki chcesz zobaczyć wszystkie katalogi w swoim domu:

$ 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/

5

Pozwól mi wyjaśnić przykładami:

  1. ls: wyświetla zawartość katalogu

  2. ls -dlub ls --directory: same katalogi, a nie ich zawartość

Przykłady:

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

Twój przypadek ls -dto mówi do listy tylko pokazać mi katalog, nie jestem w jego treści (czyli .w warunkach Linux), więc wynik jest: ..

Ale jeśli powiedziałeś ls:, zobaczysz wszystko, co jest obecne w bieżącym katalogu ..


4

ls -dwypisuj katalogi samodzielnie, zamiast ich zawartości. Pliki są wyświetlane jako normalne. Zobacz man lsopis wszystkich opcji.

. to katalog sam w sobie, taki sam jak podczas uruchamiania polecenia z bieżącego katalogu, ./runscript.sh

..jest katalogiem nadrzędnym, nadrzędnym dla bieżącego katalogu, jak w, cd ..aby przejść o krok w hierarchii katalogów

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.