Saya tahu sudah ada jawaban yang dipilih, tetapi Anda bisa mendapatkan perilaku yang diminta hanya dengan ls:
ls -ld -- */
(Perhatikan bahwa tanda '-' menandai akhir parameter, mencegah nama folder yang diawali dengan tanda hubung dari 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 direktori dijalankan (perhatikan bahwa itu juga termasuk tautan simbolis ke direktori). Untuk mendapatkan semua subdirektori dari beberapa folder lain, coba saja:
Bagus. Saya tidak pernah menganggap bahwa direktori memiliki implisit /pada akhirnya - tetapi sekarang saya melihat Anda menjawabnya masuk akal. Bagaimanapun, penyelesaian-tab selalu menambahkannya.
gvkv
-d for dir, -l for long format. apa tujuannya --?
Dineshkumar
1
Walaupun ini terlihat pendek dan berfungsi untuk sebagian besar kasus, orang mungkin tidak ingin menggunakan pendekatan ini ketika direktori yang benar diperlukan, bukan symlink direktori. Jadi findsebenarnya merupakan pilihan yang baik dalam kasus itu.
ahli biokimia
1
findjuga memiliki keunggulan ketika jumlah direktori melebihi panjang argumen maksimum.
Steven D
Bekerja mundur, saya baru sadar Anda dapat mengabaikan apapun dengan ekstensi: ls -alhF --ignore=*.*. Tidak yakin seberapa baik ini akan menangani folder 'tersembunyi', yaitu.myHiddenFolder
Timmah
14
Tidak, tetapi findperintah sederhana akan melakukannya:
Di Ubuntu 14.04 itu -maxdepth 1. Juga findingin saya membalik urutan:find . -maxdepth 1 -type d
Brad Cupit
Itu ls -F | grep /solusi keajaiban! Tampaknya menjadi satu-satunya yang bisa saya kerjakan pada mesin FreeBSD saya. Saya pikir menggunakan Fish berarti apa pun dengan */mungkin tidak berfungsi?
cjm
Saya tidak pernah bekerja dengan Fish jadi saya tidak yakin tentang itu tetapi opsi -F bisa bekerja dengan baik.
gvkv
7
Saya suka utilitas pohon untuk mendapatkan gambaran umum atas struktur direktori. Ini tersedia di MacPorts dan semua distribusi Linux yang saya coba.
tree -d -L 2
Itu akan menampilkan semua direktori, sedalam dua level.
Dengan zsh(seperti yang ditemukan secara default di macOS, bahkan dulu ada di /bin/shsana), 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).
Menyenangkan mengetahui bahwa saya bukan satu-satunya orang yang menggunakan grep "^d"retasan
Michael Mrozek
6
Sejauh yang saya tahu, perilaku yang ia gambarkan bukanlah bug dan sama jika seseorang menggunakan GNU ls. Opsi -d menampilkan daftar untuk direktori dan bukan isinya. Untuk mengetahui mengapa hal ini bermanfaat, lihat perbedaan antara: ls -l /homedanls -dl /home
Steven D
Karat tidak khusus untuk cangkang. Anda bisa menggunakannya ls -l / | grep ^d. Jika Anda sedang akan menggunakan tanda kutip, karena Anda tidak perlu perluasan parameter, membuat mereka satu tanda kutip. ls -l / | grep '^d'. Ya, saya pedant. Tapi sungguh, lakukan ini. :)
Wildcard
-1
$ ls -p | grep /
The -pbendera akan membuat lsmenambahkan garis miring ( `/ ') setelah masing-masing nama file jika file yang direktori.
Cara termudah adalah dengan mengetik perintah berikut. Ini berfungsi di sebagian besar platform dan versi UNIX dan Linux. Anda dapat melewati -Fjika Anda inginkan, tetapi argumen yang menambahkan / ke akhir nama direktori. The -Cargumen menangkap hanya nama direktori - semua dari mereka di direktori saat ini. Jika Anda ingin melihat hanya direktori dan subdirektori di jalur saat ini, cukup tambahkan -Rargumen ( ls -CFR).
Dalam semua lsimplementasi yang saya tahu dan dalam spesifikasi POSIX ls, -Cadalah output dalam kolom , bukan untuk melewatkan file non-direktori. Dalam contoh Anda, /dicetak sebelum nama file, yang tidak ada lsimplementasi akan dilakukan. Dengan -F, /ditambahkan ke nama file untuk file direktori.
Stéphane Chazelas
Ketika saya melihat jawaban ini, saya bertanya-tanya, "Di mana ini benar?" @ StéphaneChazelas dan Jeff Schaller - tidakkah Anda menurunkan jawaban yang salah?
G-Man
-3
ls -G
ini akan menampilkan direktori Anda dengan warna biru
ls -d
memberi saja.
dan mengapa*/
harus ditambahkan pada bagian akhir untuk membuatnya bekerja?ls
defaultnya adalah.
. Dan-d
artinya jangan cetak isi direktori, cetak direktori itu sendiri.ls -p
itu menunjukkan/
nama direktori setelah. Jadi*/
hanyalah sebuah pola yang cocok dengan nama direktori dan/
kombo.Jawaban:
Saya tahu sudah ada jawaban yang dipilih, tetapi Anda bisa mendapatkan perilaku yang diminta hanya dengan
ls
:(Perhatikan bahwa tanda '-' menandai akhir parameter, mencegah nama folder yang diawali dengan tanda hubung dari 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 direktori dijalankan (perhatikan bahwa itu juga termasuk tautan simbolis ke direktori). Untuk mendapatkan semua subdirektori dari beberapa folder lain, coba saja:
Perhatikan bahwa -l adalah opsional.
sumber
/
pada akhirnya - tetapi sekarang saya melihat Anda menjawabnya masuk akal. Bagaimanapun, penyelesaian-tab selalu menambahkannya.-d for dir, -l for long format
. apa tujuannya--
?find
sebenarnya merupakan pilihan yang baik dalam kasus itu.find
juga memiliki keunggulan ketika jumlah direktori melebihi panjang argumen maksimum.ls -alhF --ignore=*.*
. Tidak yakin seberapa baik ini akan menangani folder 'tersembunyi', yaitu.myHiddenFolder
Tidak, tetapi
find
perintah sederhana akan melakukannya:atau
grep
Anda kemudian dapat alias salah satu jika perlu.
sumber
-maxdepth 1
. Jugafind
ingin saya membalik urutan:find . -maxdepth 1 -type d
ls -F | grep /
solusi keajaiban! Tampaknya menjadi satu-satunya yang bisa saya kerjakan pada mesin FreeBSD saya. Saya pikir menggunakan Fish berarti apa pun dengan*/
mungkin tidak berfungsi?Saya suka utilitas pohon untuk mendapatkan gambaran umum atas struktur direktori. Ini tersedia di MacPorts dan semua distribusi Linux yang saya coba.
Itu akan menampilkan semua direktori, sedalam dua level.
sumber
Saya juga perlu melihat direktori tersembunyi sehingga telah memodifikasi saran di atas agar sesuai dengan kebutuhan saya
(tergantung pada shell, itu mungkin juga termasuk
.
dan..
)sumber
Dengan
zsh
(seperti yang ditemukan secara default di macOS, bahkan dulu ada di/bin/sh
sana), Anda akan menggunakan kualifikasi glob untuk memilih file berdasarkan jenisnya:Daftar direktori yang tidak disembunyikan:
Daftar semua direktori:
(
.
dan..
selalu dikecualikan, tambahkan secara individual jika Anda menginginkannya)Juga sertakan symlink ke direktori:
(
-
membuat kualifikasi lebih lanjut berlaku setelah resolusi symlink).sumber
Saya pikir ls memiliki bug pada Mac OS X. Solusinya adalah menggunakan grep ...
ls -l / | grep "^d"
sumber
grep "^d"
retasanls -l /home
danls -dl /home
ls -l / | grep ^d
. Jika Anda sedang akan menggunakan tanda kutip, karena Anda tidak perlu perluasan parameter, membuat mereka satu tanda kutip.ls -l / | grep '^d'
. Ya, saya pedant. Tapi sungguh, lakukan ini. :)The
-p
bendera akan membuatls
menambahkan garis miring ( `/ ') setelah masing-masing nama file jika file yang direktori.sumber
Cara termudah adalah dengan mengetik perintah berikut. Ini berfungsi di sebagian besar platform dan versi UNIX dan Linux. Anda dapat melewati
-F
jika Anda inginkan, tetapi argumen yang menambahkan / ke akhir nama direktori. The-C
argumen menangkap hanya nama direktori - semua dari mereka di direktori saat ini. Jika Anda ingin melihat hanya direktori dan subdirektori di jalur saat ini, cukup tambahkan-R
argumen (ls -CFR
).sumber
ls
implementasi yang saya tahu dan dalam spesifikasi POSIXls
,-C
adalah output dalam kolom , bukan untuk melewatkan file non-direktori. Dalam contoh Anda,/
dicetak sebelum nama file, yang tidak adals
implementasi akan dilakukan. Dengan-F
,/
ditambahkan ke nama file untuk file direktori.ini akan menampilkan direktori Anda dengan warna biru
sumber