GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara membatasi kedalaman untuk daftar file rekursif?

Lihat -maxdepth bendera find

find . -maxdepth 1 -type d -exec ls -ld "{}" \;

Di sini saya menggunakan 1 sebagai kedalaman level maksimal, -type d berarti temukan hanya direktori, yang kemudian ls -ld daftar konten, dalam format panjang.


Manfaatkan find opsi

Sebenarnya tidak ada exec dari /bin/ls dibutuhkan;

Temukan memiliki opsi yang melakukan hal itu:

find . -maxdepth 2 -type d -ls

Untuk melihat hanya satu tingkat subdirektori yang Anda minati, tambahkan -mindepth ke level yang sama dengan -maxdepth :

find . -mindepth 2 -maxdepth 2 -type d -ls

Gunakan pemformatan keluaran

Ketika detail yang ditampilkan harus berbeda, -printf dapat menampilkan detail apa pun tentang file dalam format khusus;Untuk menampilkan izin simbolis dan nama pemilik file, gunakan -printf dengan %M dan %u di format .

Saya perhatikan kemudian Anda menginginkan informasi kepemilikan penuh, yang mencakup grup. Gunakan %g dalam format untuk nama simbolis, atau %G untuk id grup (seperti juga %U untuk id pengguna numerik)

find . -mindepth 2 -maxdepth 2 -type d -printf '%M %u %g %p\n'

Ini akan memberi Anda detail yang Anda butuhkan, hanya untuk file yang tepat.

Saya akan memberikan contoh yang menunjukkan nilai yang sebenarnya berbeda untuk pengguna dan grup:

$ sudo find /tmp -mindepth 2 -maxdepth 2 -type d -printf '%M %u %g %p\n'
drwx------ www-data  www-data /tmp/user/33
drwx------ octopussy root     /tmp/user/126
drwx------ root      root     /tmp/user/0
drwx------ siegel    root     /tmp/user/1000
drwxrwxrwt root      root     /tmp/systemd-[...].service-HRUQmm/tmp

(Diedit agar mudah dibaca:indentasi, baris terakhir dipersingkat)


Catatan tentang kinerja

Meskipun waktu eksekusi sebagian besar tidak relevan untuk jenis perintah ini, peningkatan kinerjanya cukup besar di sini sehingga perlu diperhatikan:

Kami tidak hanya menghemat pembuatan proses baru untuk setiap nama - besar tugas -informasi bahkan tidak perlu dibaca, seperti find sudah mengetahuinya.


tree -L 2 -u -g -p -d

Mencetak pohon direktori dalam format cantik hingga kedalaman 2 (-L 2). Cetak pengguna (-u) dan grup (-g) dan izin (-p). Cetak hanya direktori (-d). pohon memiliki banyak opsi berguna lainnya.


Linux
  1. Bagaimana cara mendaftar folder menggunakan perintah bash?

  2. Bagaimana cara mendaftar file dengan path lengkap di Linux?

  3. Cara menemukan file .pid untuk proses tertentu

  1. Cara menemukan File di Linux

  2. Batasi Posix Temukan Ke Kedalaman Tertentu?

  3. Bagaimana Menemukan Tanda Kurung yang Tak Tertandingi Dalam File Teks?

  1. Bagaimana Mendaftar Ukuran File Rekursif Dari File Dan Direktori Di Direktori?

  2. Bagaimana cara membatasi ukuran file saat komit?

  3. Bagaimana menemukan pengelola file default?