it-swarm-id.com

Apakah ada opsi dengan perintah 'ls' yang saya lihat hanya direktori?

Terkadang, saya perlu memeriksa hanya direktori bukan file. Apakah ada opsi dengan perintah ls? Atau adakah utilitas untuk melakukan itu?

EDIT : Saya menggunakan Mac OS X, dan ls -d memberi saya . walaupun saya memiliki direktori.

86
prosseek

Saya tahu sudah ada jawaban yang dipilih, tetapi Anda bisa mendapatkan perilaku yang diminta hanya dengan ls:

ls -ld -- */

(Perhatikan bahwa '-' menandai akhir parameter, mencegah nama folder yang dimulai dengan tanda hubung tidak ditafsirkan sebagai opsi perintah lebih lanjut.)

Ini akan mendaftar semua direktori yang tidak disembunyikan (kecuali jika Anda mengkonfigurasi gumpalan Shell Anda untuk memperluasnya) di direktori kerja saat ini di mana ia dijalankan (perhatikan bahwa itu juga termasuk tautan simbolis ke direktori). Untuk mendapatkan semua subdirektori dari beberapa folder lain, coba saja:

ls -ld /path/to/directory/*/

Perhatikan bahwa -l adalah opsional.

96
Steven D

Tidak, tetapi perintah find sederhana akan melakukannya:

find . -type d -depth 1

atau grep

ls -F | grep /

Anda kemudian dapat alias salah satu jika perlu.

16
gvkv

Saya juga perlu melihat direktori tersembunyi sehingga telah memodifikasi saran di atas agar sesuai dengan kebutuhan saya

ls -d -- */ .*/

(tergantung pada Shell, itu mungkin juga termasuk . dan ..)

7
Neil Chandler

Saya suka utilitas tree untuk mendapatkan gambaran umum tentang struktur direktori. Ini tersedia di MacPorts dan semua distribusi Linux yang pernah saya coba.

tree -d -L 2

Itu akan menampilkan semua direktori, sedalam dua level.

7
Claes Mogren

Dengan zsh (seperti yang ditemukan secara default di macOS, bahkan dulu /bin/sh di sana), Anda akan menggunakan kualifikasi glob untuk memilih file berdasarkan jenisnya:

  • Daftar direktori yang tidak disembunyikan:

    ls -d -- *(/)
    
  • Daftar semua direktori:

    ls -d -- *(D/)
    

    (. dan .. selalu dikecualikan, tambahkan secara individual jika Anda menginginkannya)

  • Juga sertakan symlink ke direktori:

    ls -d -- *(D-/)
    

    (- membuat kualifikasi lebih lanjut berlaku setelah resolusi symlink).

3

Tidak hanya satu opsi untuk mendaftar direktori ...

Tapi Anda bisa menggunakan -d (daftar direktori sendiri, bukan isinya) dan */ untuk mencocokkan sendiri direktori:

ls -d */

Dan coba gunakan titik, untuk yang tersembunyi, ls -d .*/.

Hanya untuk bersenang-senang, coba: ls -d dan ls */. Perbedaannya akan jelas!

Ref:

0
marcio