find . -mtime +180 -print0 | xargs -0 tar -zcf ../backup_04-06-2018.tar.gz
find . -mtime +180 -print0 | xargs -0 tar -zcf "../backup_$(date +%d-%m-%Y).tar.gz"
- find . -mtime +180 : trouve les fichiers modifiés il y a plus de 180 jours.
- -print0 + xargs -0 : gère correctement les noms de fichiers avec espaces, apostrophes, caractères spéciaux (très sûr).
- tar -zcf ../backup_…tar.gz : crée l’archive gzip directement à partir de la liste fournie par xargs (sans passer par un fichier temporaire).
find . -mtime +180 -exec ls -1 {} + | wc -l
- Liste les fichiers concernés (un par ligne avec ls -1).
- wc -l compte les lignes → nombre de fichiers.
Variante plus précise (sans ls) :
find . -mtime +180 -print | wc -l
find . -mtime +180 -exec rm {} +
- -exec rm {} + : supprime les fichiers trouvés de façon efficace (regroupe les arguments autant que possible).
Attention maximale : cette commande est irréversible. Toujours tester d’abord avec -ls ou -print avant de passer à -exec rm.
# 1. Création de l'archive (adapte le chemin et le nom) find . -mtime +180 -print0 | xargs -0 tar -zcf "../backup_$(date +%d-%m-%Y).tar.gz" # 2. Vérification du nombre de fichiers concernés find . -mtime +180 -print | wc -l # 3. Suppression (À EXÉCUTER UNIQUEMENT APRÈS VÉRIFICATION !) find . -mtime +180 -exec rm {} +