Apa artinya `ls --directory`?

17

Dalam versi Ubuntu saya, man ls memiliki info selanjutnya tentang --directory:

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

Jadi saya agak bingung bagaimana cara kerjanya. Saya menggunakan perintah ls --directorydan saya mengharapkan daftar dengan semua direktori tetapi saya malah mendapatkannya.

Jadi apa yang sebenarnya dilakukan ls --directoryatau ls -ddilakukan?

Pau Chorro
sumber

Jawaban:

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

Direktori saat ini direpresentasikan .sedemikian sehingga itulah ls -ddaftar

Direktori di dalam direktori saat ini adalah isi dari direktori, dan karenanya tidak ditampilkan dengan opsi ini.

Saya menggunakan -dopsi di alias untuk menampilkan file dan direktori tersembunyi

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

Tanpa -d, ini akan mencantumkan isi direktori tersembunyi juga, yang bukan itu yang saya inginkan.

Kegunaan lain untuk itu adalah ketika saya ingin melihat metadata direktori menggunakan -lopsi, bukan isinya:

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

Jika Anda ingin daftar direktori di direktori saat ini, Anda dapat menggunakan

ls -d */
Zanna
sumber
ls -dC .* --colorjuga mencantumkan file tersembunyi bukan hanya direktori.
Pau Chorro
1
ya @PauChorro saya benar-benar mengatakan itu dalam jawaban saya. Saya menggunakannya untuk menampilkan semua file dan direktori tersembunyi
Zanna
1
@PauChorro Saya menambahkan cara untuk mendaftar hanya direktori
Zanna
1
Dalam versi Ubuntu saya man lsmemiliki info selanjutnya: list directory entries instead of contents, and do not derefer‐ ence symbolic links. Jadi dalam versi Anda adalah penjelasan yang lebih baik tentang apa yang sebenarnya dilakukannya.
Pau Chorro
1
@ Pilot6 akan menampilkan daftar file juga
Zanna
11

Menggunakan lshanya dengan -dhampir tidak berguna. Ini memberi informasi tentang direktori itu sendiri. Itu tidak mencantumkan isinya.

Itu sebabnya Anda tidak melihat daftar direktori. Direktori yang Anda harapkan adalah "isi" dari direktori saat ini

Jika Anda menjalankannya secara sederhana ls -ditu menunjukkan direktori saat ini oleh ..

Jika masuk akal untuk menjalankannya dengan tombol lain seperti -l.

ls -ld akan menampilkan izin direktori saat ini.

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

Anda juga dapat melihat izin dari direktori lain seperti

ls -ld /bin

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

Jika Anda menjalankan ls -ltanpa -dAnda akan memiliki daftar semua izin untuk file dan folder di direktori saat ini. Jika Anda tidak membutuhkannya, itu adalah contoh yang baik untuk ls -lddigunakan.

Anda dapat mendaftar direktori dalam direktori saat ini

ls -d */
Pilot6
sumber
6

Menggunakan ls -ddengan sendirinya cukup berguna karena tanpa parameter selalu kembali .. Setelah Anda menentukan parameter, masuk akal. Misalnya jika nama pengguna rickAnda dan Anda ingin melihat semua direktori di rumah Anda gunakan:

$ 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
sumber
5

Izinkan saya menjelaskan dengan contoh:

  1. ls: daftar isi direktori

  2. ls -datau ls --directory: daftar direktori sendiri, bukan isinya

Contoh:

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

Kasus Anda ls -dini mengatakan ke daftar hanya menunjukkan direktori saya di tidak isinya (yaitu .dalam hal Linux), sehingga hasilnya adalah: ..

Tetapi jika Anda mengatakan:, lsmaka Anda akan melihat semua yang ada di direktori saat ini ..

George Udosen
sumber
4

ls -ddaftar direktori sendiri bukan kontennya. File terdaftar seperti biasa. Lihat ke dalam man lsuntuk deskripsi semua opsi.

. adalah direktori itu sendiri, sama dengan yang Anda gunakan saat menjalankan perintah dari direktori saat ini, ./runscript.sh

..adalah direktori induk, induk ke direktori saat ini, seperti cd ..untuk bergerak pada tingkat atas dalam hierarki direktori

Soren A
sumber