J'ai un répertoire de fichiers journaux qui contient 82000 fichiers et répertoires (environ la moitié et la moitié).
J'ai besoin de supprimer tous les fichiers et répertoires de plus de 3 jours.
Dans un répertoire contenant 37000 fichiers, j'ai pu le faire avec:
find * -mtime +3 -exec rm {} \;
Mais avec 82000 fichiers / répertoires, j'obtiens l'erreur:
/ usr / bin / find: Liste d'arguments trop longue
Comment contourner cette erreur afin de pouvoir supprimer tous les fichiers / répertoires de plus de 3 jours?
linux
file-io
resource-cleanup
Edward Tanguay
la source
la source
find -mtime +3 -exec rm {} +
?find * -mtime +3 |xargs rm
résoudrait ce problème.find *
.find .
est mieux. Le shell globing avec étend le*
à une énorme liste de fichiers et répertoires.Réponses:
Pour supprimer tous les fichiers et répertoires du répertoire actuel :
Ou bien, plus conforme à la commande d'origine de l'OP:
la source
--
après rm, commefind . -mtime +3 -exec rm -- {} \;
--
sert.Peut également utiliser:
Pour ne pas supprimer le répertoire cible
la source
Une autre solution pour la question originale, esp. utile si vous souhaitez supprimer uniquement CERTAINS des fichiers les plus anciens d'un dossier, ce serait comme ceci:
et ainsi de suite .. Les citations bloquent les caractères génériques du shell, vous permettant ainsi de "trouver" des millions de fichiers :)
la source