GNU/Linux >> Tutoriels Linux >  >> Linux

Comment obtenir tous les fichiers dépassant une certaine taille et les supprimer

Semblable à la réponse exec rm, mais n'a pas besoin d'un processus pour chaque fichier trouvé :

find . -size +100k -delete

Une ligne :

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

La première partie (find . -size +100k ) recherche tous les fichiers à partir du répertoire courant (. ) dépassant (+ ) 100 Ko (100k ).

La deuxième partie (-exec rm {} \; ) a appelé la commande donnée sur chaque fichier trouvé. {} est un espace réservé pour le nom du fichier actuel, y compris le chemin. \; marque juste la fin de la commande.

N'oubliez pas de toujours vérifier si vos critères de filtrage sont corrects en exécutant raw find :

find . -size +100k

Ou, vous pouvez même faire une copie de sauvegarde avant de supprimer :

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

python est installé sur tous les systèmes d'exploitation basés sur Unix, alors pourquoi ne pas l'utiliser à la place de bash ?

Je trouve toujours python plus lisible que awk et sed magique.

Voici le code python que j'aurais écrit :

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)

Et ceci est la version à une ligne avec python -c

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

Et si vous voulez appliquer la recherche de manière récursive, voyez ceci


Linux
  1. Comment créer des fichiers d'une certaine taille sous Linux

  2. Utilisez Rechercher pour trouver certains répertoires et supprimer tous les fichiers qu'il contient sauf un répertoire ?

  3. Comment trouver tous les fichiers liés à un logiciel ?

  4. Comment rechercher tous les fichiers avec une taille de fichier de zéro (0) octet dans un répertoire de manière récursive

  5. Comment lister récursivement tous les fichiers et répertoires

Comment obtenir la taille d'un répertoire sous Linux

Comment rechercher et répertorier récursivement les fichiers par date sous Linux

Comment trouver des fichiers en double sous Linux et les supprimer

gzip tous les fichiers sans les supprimer

Obtenir la taille de tous les dossiers du répertoire

Comment puis-je trouver tous les fichiers et répertoires accessibles en écriture par un utilisateur spécifique ?