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.