Saya mencoba mendapatkan semua file dengan topeng di beberapa direktori tanpa mencari di subdir secara rekursif. Tidak ada opsi -maxdepth 0 di AIX untuk itu.
Saya pernah mendengar tentang -prune , tetapi masih belum bisa memahami cara kerjanya.
Saya kira perintahnya akan terlihat seperti
find dir \( ! -name dir -prune -type f \) -a -name filemask
tapi tidak berhasil.
Bisakah Anda menulis perintah yang benar untuk saya dan menjelaskan cara kerjanya?
UPD
Sepertinya perintah
find dir ! -path dir -prune
mencetak semua file dan katalog dalam dir , tetapi bukan file dan katalog di dir/* , jadi saya bisa menggunakannya untuk kasus saya.
Jawaban yang Diterima:
Anda ingin:
find dir/. ! -name . -prune -type f -name filemask
Atau:
find dir ! -path dir -prune -type f -name filemask
Untuk menemukan file biasa bernama filemask di dir tanpa mencari di sub-direktori dir .
Dengan find dir ! -name dir -prune , Anda akan mengalami masalah jika ada dir/dir direktori.
dir/. pendekatan mengatasi itu karena find tidak akan menemukan file lain yang disebut . dari itu dir/. file diteruskan sebagai argumen.
-path pendekatan bekerja di sekitarnya dengan melihat jalur file dari file (bukan hanya nama), -path dir akan cocok dengan dir , tetapi tidak pada dir/dir (jadi dir akan menjadi satu-satunya direktori yang tidak akan dipangkas). -path mungkin tidak tersedia di versi AIX yang lebih lama.
Lebih umum, untuk standar yang setara dengan -maxdepth n GNU's , lihat Batasi pencarian POSIX hingga kedalaman tertentu?