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?