Bagaimana cara mendapatkan daftar direktori linux untuk file yang dimulai dengan huruf tertentu yang tidak turun ke subdirektori?

17

Misalkan Anda berada di direktori yang berisi banyak file dan banyak subdirektori.

Anda ingin mendapatkan daftar direktori dari semua file yang dimulai dengan huruf "d". Anda mengetik

ls d*

dan apa yang Anda dapatkan sebagian besar adalah file dalam sub-direktori (khususnya, file dalam subdirektori yang dimulai dengan "d").

Bagaimana Anda mendaftar hanya file dan nama direktori di direktori Anda saat ini?

dggoldst
sumber

Jawaban:

31

Ah, saya baru menemukannya di bacaan ke-6 halaman manual. Ini adalah parameter "direktori" yang tidak terlalu masuk akal

ls -d d* 
dggoldst
sumber
6
Anda hanya perlu 29 detik untuk membaca ulang halaman manual dan menuliskan jawaban ini? Itu cepat :-)
balpha
1
Selain itu, ls -dd * / hanya akan menampilkan direktori.
innaM
6
balpha - Saya menemukannya sebelum mengirimkan pertanyaan, kemudian menyadari bahwa jika saya membutuhkan waktu lama untuk mencari tahu, saya mungkin juga membantu seorang pencari di masa depan dan memposting q dan a di sini.
dggoldst
3
Cukup adil; tidak ada yang salah dengan itu.
balpha
1
Namun, CppLearner, itu memang berhasil. Cobalah.
dggoldst
10

Saya percaya solusi lain yang menarik adalah,

ls | grep ^d

Menawarkan fleksibilitas ekspresi reguler.

Kuer
sumber
3
Dan kompleksitas ekspresi reguler! ;-)
Chris Nava
1
Itu adalah soln yang menarik, dan saya suka ide menggunakan regex, namun, jika Anda menambahkan parameter tambahan ke ls itu akan rusak. Misalnya "ls-l | grep ^ d"
dggoldst
Benar, tetapi tidak semua parameter. ls -a | grep "^ \." akan mencetak semua file "tersembunyi".
Kuer
lainnya ls flagstidak berfungsi saat menggunakan pendekatan ini. misalnya ls -ltr | grep ^dtidak berfungsi. sedangkan yang disarankan dalam jawaban @dggoldst tidak.
hitesh israni
3

Temukan . -maxdepth 1 -nama d * -type f

Oke, menggunakan find di sini sedikit berlebihan. Hanya sedikit.

James Polley
sumber
1
Tapi itu membantu saya membuat daftar semua direktori langsung dari pengguna tertentu: find /home/ -maxdepth 1 -type d -user www-data. Terima kasih, dan +1
Cyril N.
1

ls -ld: Ini akan memberikan daftar direktori, tanpa turun ke subdirektori.

Contoh:

ls -ld Cust*
Perintah ini akan memberikan daftar file dan direktori yang dimulai dengan Cust.

chelladurai
sumber
1
Ini pada dasarnya sama dengan jawaban yang diterima lima tahun.
Scott