Existe-t-il une commande pour supprimer tous les fichiers d'un répertoire qui n'ont pas été modifiés depuis N jours? J'ai besoin de nettoyer d'anciens journaux.
16
Cela supprimera tous les fichiers de plus de 5 jours, vous pouvez également y mettre un -name '*log'
pour être plus précis et vous pouvez également spécifier un maxdepth
dans la commande find.
find /some/dir -type f -mtime +5 -delete
-ls
au lieu de-delete
s'assurer que cela ne supprimera rien qu'ils voulaient garder. Oui, parlant d'expérience ici./ some/dir/
version. :(Avec
zsh
et(.m+n)
qualificatifs glob :.
sélectionne uniquement les fichiers normaux,m+n
sélectionne les fichiers modifiés il y a plus de n jours;Par exemple, listez les fichiers du répertoire actuel qui ont été modifiés il y a plus de 9 jours:
ajouter
D
pour inclure des fichiers de points:ou si vous voulez recurse (et listez par exemple uniquement les fichiers se terminant par
.log
):remplacez
print -rl
parrm
si vous êtes satisfait du résultat; mais vous devrez peut-être utiliserzargs
si vous avez beaucoup de fichiers (pour éviter une liste d'arguments trop longue ):la source