GNU/Linux >> Tutoriales Linux >  >> Linux

encontrar el comando en el script bash que da como resultado No such file or directory error only for directorys?

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.


Linux
  1. Cómo encontrar un archivo en Linux en todos los directorios recursivamente

  2. error fatal openssl/evp.h:No existe tal archivo o directorio:[Resuelto]

  3. No se puede ejecutar No existe tal archivo o directorio [Fijar]

  4. Solucione el error fatal openssl err.h:no existe tal archivo o directorio [OpenCA]

  5. Cómo hacer que el comando de alias funcione en script bash o archivo bashrc

Encuentra archivos y directorios en Linux con el comando de búsqueda

Error:xenstore-read:xs_open:No existe tal archivo o directorio en DomU [Resuelto]

Eliminar archivos y directorios por sus nombres. ¿El fichero o directorio no existe?

Bash ignorando el error de un comando en particular

El comando conda generará un error:Intérprete incorrecto:no existe tal archivo o directorio

Cómo hacer grep para Unicode en un script bash