GNU/Linux >> Linux Esercitazione >  >> Linux

come posso eliminare in modo ricorsivo le directory vuote nella mia home directory?

Il find Il comando è lo strumento principale per le operazioni ricorsive del file system. Usa il comando -type d espressione per dire find sei interessato a trovare solo directory (e non file semplici). La versione GNU di find supporta il -empty prova, quindi

$ find . -type d -empty -print

stamperà tutte le directory vuote sotto la tua directory corrente.

Usa find ~ -… o find "$HOME" -… per basare la ricerca sulla tua home directory (se non è la tua directory corrente).

Dopo aver verificato che si stanno selezionando le directory corrette, usa -delete per eliminare tutte le corrispondenze:

$ find . -type d -empty -delete

Puoi chiamare rmdir in ogni directory, dal rmdir eliminerà una directory solo se è vuota:

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

Se vuoi stampare anche le directory che vengono rimosse, dovrai controllare se sono vuote:

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

Ecco un puro esempio di bash (versione 4 o superiore):

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

Linux
  1. Trova Directory di esclusione?

  2. Come trovare ed eliminare directory e file vuoti in Unix

  3. Come trovare ed eliminare directory e file vuoti in Linux

  4. Come elencare in modo ricorsivo tutti i file e le directory

  5. Come trovare la home directory di un utente su Linux o Unix?

Come rimuovere (eliminare) la directory in Linux

Come trovare ed eliminare directory vuote in Linux

Come posso copiare in modo ricorsivo i file per estensione di file, preservando la struttura delle directory?

Come posso eseguire un chmod ricorsivo solo sulle directory?

Come posso trovare il file più vecchio in un albero di directory

Come posso eliminare in modo ricorsivo tutti i file e le directory vuoti in Linux?