GNU/Linux >> Belajar Linux >  >> Linux

Batasi Posix Temukan Ke Kedalaman Tertentu?

Baru-baru ini saya perhatikan bahwa spesifikasi POSIX untuk find jangan sertakan -maxdepth utama.

Bagi mereka yang tidak terbiasa dengannya, tujuan dari -maxdepth utama adalah untuk membatasi berapa banyak level dalam find akan turun. -maxdepth 0 menghasilkan hanya argumen baris perintah sedang diproses; -maxdepth 1 hanya akan menangani hasil secara langsung dalam argumen baris perintah, dll.

Bagaimana saya bisa mendapatkan perilaku yang setara dengan -maxdepth non-POSIX? utama hanya menggunakan opsi dan alat yang ditentukan POSIX?

(Catatan:Tentu saja saya bisa mendapatkan yang setara dengan -maxdepth 0 hanya dengan menggunakan -prune sebagai operan pertama, tetapi itu tidak meluas ke kedalaman lainnya.)

Jawaban yang Diterima:

Anda dapat menggunakan -path untuk mencocokkan kedalaman tertentu dan memangkas di sana. Misal

find . -path '*/*/*' -prune -o -type d -print

akan menjadi maxdepth 1, sebagai * cocok dengan . , */* cocok dengan ./dir1 , dan */*/* cocok dengan ./dir1/dir2 yang dipangkas. Jika Anda menggunakan direktori awal absolut, Anda perlu menambahkan / leading terkemuka ke -path juga.


Linux
  1. Bagaimana Cara Mencari Di File Tertentu yang Sesuai Dengan Pola?

  2. Bagaimana Menemukan Semua File yang Dimiliki oleh Pengguna Tertentu di Unix/Linux?

  3. Cara Menemukan Teks Tertentu menggunakan GREP di Linux

  1. Bagaimana cara membatasi kedalaman untuk daftar file rekursif?

  2. Bagaimana saya bisa menemukan file tertentu dari terminal Linux?

  3. grep rekursif:mengecualikan direktori tertentu

  1. Bagaimana cara mendaftar folder menggunakan perintah bash?

  2. Menemukan dan menghapus file dengan tanggal tertentu

  3. Cara mengetahui sumber sinyal POSIX