tl;dr - Pass -prune
se stai eliminando le directory usando find
.
Per chiunque altro si imbatta in questa domanda. Esecuzione di un esempio come questo
find /media/disk3 -type d -name .AppleDouble -exec rm -rf {} \;
genera un errore come
rm: cannot remove 'non_existent_directory': No such file or directory
Quando trovi ed elimini le directory con find, incontrerai spesso questo errore perché find
memorizza la directory per elaborare le sottodirectory, quindi la elimina con exec
, quindi tenta di attraversare le sottodirectory che non esistono più.
Puoi superare -maxdepth 0
o -prune
per prevenire questo problema. In questo modo:
find /media/disk3 -type d -name .AppleDouble -prune -exec rm -rf {} \;
Ora cancella le directory senza errori. Evviva! :)
Non è necessario sfuggire a DOT in shell glob in quanto non si tratta di espressioni regolari. Quindi usa .AppleDouble
invece di \.AppleDouble
:
find $DIRTY_DIR -name .AppleDouble -exec rm -rf '{}' \;
PS: Non vedo da nessuna parte $COUNTER
essere incrementato nel tuo script.