GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo eliminar recursivamente todos los archivos y directorios vacíos en Linux?

Este es un trazador de líneas realmente simple:

find Parent -empty -delete

Es bastante autoexplicativo. Aunque cuando revisé me sorprendió que elimina con éxito Parent/Child1. Por lo general, esperaría que procesara al padre antes que al hijo, a menos que especifique -depth .

Esto funciona porque -delete implica -depth . Consulte el manual de búsqueda de GNU:

-delete Borrar archivos; verdadero si la eliminación se realizó correctamente. Si la eliminación falla, se emite un mensaje de error. Si -delete falla, el estado de salida de find será distinto de cero (cuando finalmente salga). El uso de -delete activa automáticamente la opción - depth.

Tenga en cuenta que estas funciones no forman parte del estándar Posix, pero lo más probable es que estén presentes en muchas distribuciones de Linux. Es posible que tenga un problema específico con los más pequeños, como Alpine Linux, ya que se basan en Busybox, que no es compatible con -empty .

Otros sistemas que incluyen -empty no estándar y -delete incluye BSD y OSX pero aparentemente no AIX.


Aquí hay una solución de dos comandos

Eliminar archivos vacíos

find Parent/ -type f -size 0 -delete

Intente eliminar todos directorios

find Parent/ -type d -depth -print0 | xargs -0 rmdir 2>/dev/null

NOTA rmdir no puede eliminar directorios que no estén vacíos, por lo que es seguro ejecutarlo pero producirá errores, que estamos ocultando

Como arriba, pero siendo un poco más específico sobre los mensajes de error que se ignoran. Es posible que deba modificarse si el mensaje varía según las distribuciones.

find Parent/ -type d -depth -print0 | xargs -0 rmdir 2>&1 \
  | grep -iv "Directory not empty$"

También puedes hacer esto con el fd herramienta:

fd -t e -x rm -r

https://github.com/sharkdp/fd


Linux
  1. Cómo buscar y eliminar directorios recursivamente en Linux

  2. Linux Eliminar archivos y directorios

  3. Cómo encontrar y eliminar directorios y archivos vacíos en Unix

  4. Cómo encontrar y eliminar directorios y archivos vacíos en Linux

  5. Cómo enumerar recursivamente todos los archivos y directorios

Cómo comprimir archivos y directorios en Linux

Cómo encontrar recursivamente y enumerar los archivos por fecha en Linux

Cómo encontrar y eliminar archivos duplicados en Linux

Cómo encontrar y eliminar directorios vacíos en Linux

Encuentre archivos y directorios en Linux fácilmente

Cómo eliminar archivos y directorios usando la línea de comandos de Linux