tl;dr - Pase -prune
si está eliminando directorios usando find
.
Para cualquier otra persona que tropiece con esta pregunta. Ejecutando un ejemplo como este
find /media/disk3 -type d -name .AppleDouble -exec rm -rf {} \;
da como resultado un error como
rm: cannot remove 'non_existent_directory': No such file or directory
Al buscar y eliminar directorios con find, a menudo encontrará este error porque find
almacena el directorio para procesar subdirectorios, luego lo elimina con exec
, luego intenta recorrer los subdirectorios que ya no existen.
Puedes pasar -maxdepth 0
o -prune
para prevenir este problema. Así:
find /media/disk3 -type d -name .AppleDouble -prune -exec rm -rf {} \;
Ahora elimina los directorios sin ningún error. ¡Viva! :)
No necesita escapar de DOT en shell glob ya que esto no es expresión regular. Así que usa .AppleDouble
en lugar de \.AppleDouble
:
find $DIRTY_DIR -name .AppleDouble -exec rm -rf '{}' \;
PD: No veo por ningún lado $COUNTER
siendo incrementado en su secuencia de comandos.