tl;dr - Lulus -prune
jika Anda menghapus direktori menggunakan find
.
Untuk siapa pun yang tersandung pada pertanyaan ini. Menjalankan contoh seperti ini
find /media/disk3 -type d -name .AppleDouble -exec rm -rf {} \;
menghasilkan kesalahan seperti
rm: cannot remove 'non_existent_directory': No such file or directory
Saat mencari dan menghapus direktori dengan find, Anda akan sering menemukan kesalahan ini karena find
menyimpan direktori untuk memproses subdirektori, lalu menghapusnya dengan exec
, lalu mencoba menelusuri subdirektori yang sudah tidak ada lagi.
Anda dapat meneruskan -maxdepth 0
atau -prune
untuk mencegah masalah ini. Seperti itu:
find /media/disk3 -type d -name .AppleDouble -prune -exec rm -rf {} \;
Sekarang menghapus direktori tanpa kesalahan. Hore! :)
Anda tidak perlu keluar dari DOT di shell glob karena ini bukan regex. Jadi gunakan .AppleDouble
bukannya \.AppleDouble
:
find $DIRTY_DIR -name .AppleDouble -exec rm -rf '{}' \;
PS: Saya tidak melihat di mana pun $COUNTER
sedang ditambahkan dalam skrip Anda.