GNU/Linux >> Linux Esercitazione >  >> Linux

Elimina i file corrispondenti in tutte le sottodirectory

Rimuovi tutti i file *.swp sotto la directory corrente, usa find comando in una delle seguenti forme:

  • find . -name \*.swp -type f -delete

    Il -delete opzione significa find eliminerà direttamente i file corrispondenti. Questa è la migliore corrispondenza con la vera domanda di OP.

    Usando -type f significa che find elaborerà solo i file.

  • find . -name \*.swp -type f -exec rm -f {} \;
    find . -name \*.swp -type f -exec rm -f {} +

    Opzione -exec consente a find di eseguire un comando arbitrario per file. La prima variante eseguirà il comando una volta per file e la seconda eseguirà il minor numero possibile di comandi sostituendo {} con il maggior numero di parametri possibile.

  • find . -name \*.swp -type f -print0 | xargs -0 rm -f

    Piping dell'output a xargs è usato da comandi per file più complessi di quanto sia possibile con -exec . L'opzione -print0 indica find per separare le corrispondenze con ASCII NULL invece di una nuova riga e -0 dice a xargs aspettarsi un input separato da NULL. Ciò rende il costrutto pipe sicuro per i nomi di file contenenti spazi bianchi.

Vedi man find per maggiori dettagli ed esempi.


find . -name '*.swp' -delete

Avendo trovato l'eliminazione stessa rimuovi qualsiasi rischio per lo spazio incorporato nel nome del file, ... Per una maggiore sicurezza considera anche l'aggiunta di -type f solo per i file.


find /path -type f -name "*.swp" -delete
find /path -type f -name "*.swp" -exec rm -f "{}" +;

bash 4.0

shopt -s globstar
rm -f /path/**/*.swp

Linux
  1. Elimina tutti i file tranne che in una determinata sottodirectory con Trova?

  2. Come gzippare tutti i file in tutte le sottodirectory in bash

  3. Trova tutti i file con nome contenente una stringa

  4. elenca/trova tutti i file regolari in tutte le sottodirectory esclusi i file binari

  5. Come posso trovare tutti i file hardlink su un filesystem?

Script bash per eliminare file più vecchi di x giorni con sottodirectory

Elimina tutti i file casuali tranne 1000 in una directory

Modo più veloce per eliminare un gran numero di file

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

Come utilizzare il comando find per eliminare i file che corrispondono a un modello?

Come elencare tutti i file di una partizione su Linux?