GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo eliminar recursivamente directorios vacíos en mi directorio de inicio?

El find El comando es la herramienta principal para las operaciones recursivas del sistema de archivos. Use el -type d expresión para decirle a find está interesado en encontrar directorios solamente (y no archivos sin formato). La versión GNU de find soporta el -empty prueba, entonces

$ find . -type d -empty -print

imprimirá todos los directorios vacíos debajo de su directorio actual.

Usa find ~ -… o find "$HOME" -… para basar la búsqueda en su directorio de inicio (si no es su directorio actual).

Una vez que haya verificado que esto está seleccionando los directorios correctos, use -delete para eliminar todas las coincidencias:

$ find . -type d -empty -delete

Puedes llamar al rmdir en cada directorio, desde rmdir solo eliminará un directorio si está vacío:

find "$HOME" -type d -exec rmdir {} + 2>/dev/null

Si también desea imprimir los directorios que se eliminan, deberá verificar si están vacíos:

find "$HOME" -type d -exec bash -c 'shopt -s nullglob; shopt -s dotglob; files=("$1"/*); [[ ${files[@]} ]] || rmdir -v "$1"' -- {} \; 

Aquí hay un ejemplo puro de bash (versión 4 o superior):

shopt -s globstar
for dir in **/; do
   files=("$dir"/*)
   [[ ${files[@]} ]] || rmdir -v "$dir"
done

Linux
  1. ¿Cómo eliminar directorios recursivamente con comodines?

  2. Enumere recursivamente todos los archivos en un directorio, incluidos los archivos en los directorios de enlaces simbólicos

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

  4. ¿Cómo encontrar el directorio de inicio de un usuario en Linux o Unix?

  5. bash buscar directorios

Cómo quitar (eliminar) directorio en Linux

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

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

¿Cómo puedo calcular una suma de comprobación md5 de un directorio?

¿Cómo puedo encontrar el archivo más antiguo en un árbol de directorios?

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