GNU/Linux >> Linux Esercitazione >  >> Linux

Come ottenere tutti i file che superano determinate dimensioni ed eliminarli

Simile alla risposta exec rm, ma non necessita di un processo per ogni file trovato:

find . -size +100k -delete

Una riga:

find . -size +100k -exec rm {} \;

La prima parte (find . -size +100k ) cerca tutti i file a partire dalla directory corrente (. ) eccedente (+ ) 100 kByte (100k ).

La seconda parte (-exec rm {} \; ) ha richiamato il comando dato su ogni file trovato. {} è un segnaposto per il nome del file corrente, incluso il percorso. \; segna solo la fine del comando.

Ricordati di controllare sempre se i tuoi criteri di filtraggio sono corretti eseguendo find non elaborato :

find . -size +100k

Oppure potresti anche fare una copia di backup prima di eliminare:

find . -size +100k -exec cp --parents {} ~/backup \;

python è installato su tutti i sistemi operativi basati su unix, quindi perché non usarlo al posto di bash?

Trovo sempre Python più leggibile di awk e sed magia.

Questo è il codice Python che avrei scritto:

import os
Kb = 1024 # Kilo byte is 1024 bytes
Mb = Kb*Kb
Gb = Kb*Kb*Kb
for f in os.listdir("."):
    if os.stat(f).st_size>100*Kb:
        os.remove(f)

E questa è la versione di una riga con python -c

python -c "import os; [os.remove(f) for f  in os.listdir('.') if os.stat(f).st_size>100*1024]"

E se vuoi applicare la ricerca in modo ricorsivo, guarda questo


Linux
  1. Come trovare tutti i file di dimensioni superiori a 1 GB in Linux?

  2. Come trovare tutti i file con dimensione del file zero (0) byte in una directory in modo ricorsivo

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

  4. Come posso modificare tutti i file restituiti da find in vi in ​​Linux?

  5. Come elencare i file in modo ricorsivo e ordinarli in base all'ora di modifica?

Come ottenere la dimensione di una directory in Linux

Come trovare ed elencare in modo ricorsivo i file per data in Linux

Come creare file di una certa dimensione in Linux

Come trovare file duplicati in Linux e rimuoverli

Come ottenere la dimensione effettiva della directory (da du)?

Ottieni la dimensione di tutte le cartelle nella directory