GNU/Linux >> Belajar Linux >  >> Linux

Cara Mendaftar Hanya Direktori di Linux

Perintah ls di Linux digunakan untuk membuat daftar isi direktori manapun.

Secara default, ini mencantumkan semua konten, baik itu file atau direktori atau tautan atau pipa bernama.

Tetapi bagaimana jika Anda hanya ingin membuat daftar direktori? Bagaimana caranya?

Seperti apa pun di Linux, ada beberapa cara untuk menyelesaikan tugas yang sama. Daftar hanya direktori tidak berbeda:

  • ls -d */
  • ls -l | grep '^d'
  • temukan . -maxdepth 1 -tipe d
  • gema */
  • pohon -d -L 1

Jangan khawatir. Saya akan menjelaskan hal-hal secara rinci. Berikut isi direktori yang akan saya gunakan dalam contoh di sini:

Gunakan perintah ls untuk mendaftar direktori saja

Itu selalu baik untuk melakukannya dengan perintah ls yang sudah dikenal karena ini adalah perintah yang Anda gunakan untuk menampilkan konten direktori.

Untuk mendaftar hanya subdirektori, gunakan -d opsi dengan perintah ls seperti ini:

ls -d */

Berikut output yang ditampilkan:

[[email protected] Documents]$ ls -d */
another_dir/  my_dir/

Mengapa */ ? Karena tanpanya, ls -d hanya akan mengembalikan nama direktori. -d daftar pilihan direktori bukan isinya (termasuk file, direktori dll).

*/ adalah sebuah pola. Dengan * , Anda mencantumkan semua konten (termasuk konten subdirektori) dan / membatasi pola ke direktori.

Gambar ini menggambarkan perbedaannya dengan cukup baik.

Anda dapat menggabungkannya dengan opsi daftar panjang -l dan sebagian besar opsi lainnya:

[[email protected] Documents]$ ls -ld */
drwxrwxr-x. 1 abhishek abhishek 16 Nov  7 18:22 another_dir/
drwxrwxr-x. 1 abhishek abhishek 44 Nov  7 18:22 my_dir/

Jika Anda tidak ingin garis miring (/) di akhir nama direktori, Anda dapat menggunakan perintah cut untuk memotongnya:

[[email protected] Documents]$ ls -ld */ | cut -f1 -d'/'
drwxrwxr-x. 1 abhishek abhishek 16 Nov  7 18:22 another_dir
drwxrwxr-x. 1 abhishek abhishek 44 Nov  7 18:22 my_dir

Hanya daftarkan subdirektori dalam direktori tertentu

Perintah di atas berfungsi di direktori saat ini. Bagaimana jika Anda tidak berada di direktori yang sama?

Dalam situasi ini, Anda dapat menggunakan */ di akhir jalur direktori dengan ls -d :

ls -d Path/To/Dir/*/

Berikut adalah contoh di mana saya keluar dari direktori Documents dan kemudian hanya mencantumkan direktori di dalam direktori Documents:

[[email protected] ~]$ ls -ld Documents/*/
drwxrwxr-x. 1 abhishek abhishek 16 Nov  7 18:22 Documents/another_dir/
drwxrwxr-x. 1 abhishek abhishek 44 Nov  7 18:22 Documents/my_dir/

Apakah Anda memperhatikan bahwa itu tidak mencantumkan direktori tersembunyi? Itulah salah satu kekurangan dari metode ini. Anda dapat menggunakan ls -d .*/ untuk menampilkan direktori tersembunyi, tetapi hanya menampilkan direktori tersembunyi.

Gunakan kombinasi perintah ls dan grep

Anda selalu dapat mengandalkan perintah grep lama yang bagus untuk memfilter output untuk konten tertentu.

Jika Anda membuat daftar konten yang panjang, Anda dapat mengidentifikasi direktori karena dimulai dengan d .

Anda dapat menggunakan grep untuk memfilter konten yang dimulai dengan d:

ls -l | grep '^d'

Tapi ini memberi Anda lebih banyak bidang daripada hanya nama direktori:

[[email protected] Documents]$ ls -l | grep '^d'
drwxrwxr-x. 1 abhishek abhishek 16 Nov  7 18:22 another_dir
drwxrwxr-x. 1 abhishek abhishek 44 Nov  7 18:22 my_dir

Gunakan perintah find untuk mendaftar direktori saja

Berikut cara menggunakan perintah find untuk mendaftar subdirektori saja:

find directory_path -maxdepth 1 -type d

Saya harap Anda terbiasa dengan perintah find. Saya akan tetap menjelaskannya.

Dengan type d , Anda meminta perintah find untuk hanya mencari direktori.

Dengan maxdepth 1 Anda meminta perintah find untuk menyimpan pencarian pada level saat ini saja (dan tidak masuk ke dalam subdirektori).

[[email protected] Documents]$ find . -maxdepth 1 -type d
.
./my_dir
./another_dir
./.my_hidden_dir

Seperti yang Anda lihat pada output di atas, ini juga menunjukkan direktori tersembunyi.

Gunakan perintah pohon untuk mendaftar direktori saja

Jika tujuan Anda hanya untuk membuat daftar direktori, Anda juga dapat menggunakan perintah pohon.

Secara default, perintah pohon memberi Anda struktur direktori lengkap. Anda dapat memodifikasinya untuk hanya menampilkan direktori dan hanya pada level saat ini.

tree -dai -L 1
  • d - hanya mencari direktori
  • a - cari juga file dan direktori tersembunyi
  • i - hapus struktur pohon dari tampilan
  • L 1 - jangan masuk ke subdirektori

Berikut outputnya:

[email protected] Documents]$ tree -dai -L 1
.
another_dir
my_dir
.my_hidden_dir

3 directories

Menggunakan perintah echo untuk mendaftar direktori

Kandidat yang tidak mungkin? Anda akan terkejut mengetahui bahwa perintah echo di Linux juga dapat digunakan untuk menampilkan isi direktori. Coba gunakan echo * dan lihat sendiri.

Mirip dengan perintah ls, Anda juga dapat menggunakan */ pola untuk mendaftar hanya direktori di direktori kerja saat ini.

echo */

Inilah output yang identik dengan apa yang Anda dapatkan dengan ls -d perintah:

Mungkin ada lebih banyak cara untuk mendaftar hanya direktori, bukan file. Faktanya, metode yang dibahas di sini mungkin memiliki beberapa kelebihan dan kekurangan berdasarkan apa yang Anda cari.

Jika tujuan Anda hanya menampilkan direktori, sebagian besar perintah yang saya bahas akan berfungsi. Jika Anda menginginkan sesuatu yang lebih spesifik seperti hanya mendapatkan nama direktori dengan garis miring dll, Anda harus melakukan pemformatan sendiri.

Saya harap Anda menemukan tip Linux ini bermanfaat. Pertanyaan dan saran selalu diterima.


Linux
  1. Cara menggunakan Perintah Su di Linux

  2. Perintah Linux:Bagaimana cara 'menemukan' hanya file teks?

  3. Bagaimana cara mendaftar direktori secara rekursif di C di Linux?

  1. Cara Daftar Pengguna di Linux, Daftar semua Perintah Pengguna

  2. Perintah Linux ls - Daftar File

  3. Bagaimana saya bisa mendaftar semua pengguna yang terkunci di Linux?

  1. Cara Menggunakan Perintah Disown di Linux

  2. Cara Menggunakan Perintah SS Linux

  3. Cara Menyalin File ke Banyak Direktori di Linux