Je dois supprimer tous les fichiers de plus de 5 jours dans tous les sous-dossiers, mais pas les dossiers eux-mêmes. Je connais la commande:
find /path/to/files* -mtime +5 -exec rm {} \;
Mais comment puis-je dire à Ubuntu d’archiver tous les sous-dossiers, sans jamais supprimer les dossiers eux-mêmes. Aurai-je besoin d'un -maxdepth 5 quelque part?
Merci.
Tout d'abord, ne donnez pas de glob à find
(pas de files*
), mais donnez-lui le répertoire parent (/path/to/
). Il traitera de la récurrence et de la recherche de tous les fichiers. Ensuite, rm
ne supprimera jamais les répertoires, vous n'avez donc pas à vous en préoccuper. Cependant, le moyen le plus simple est:
find /path/to/ -type f -mtime +5 -delete
Notez le -type f
qui indique à find
de ne regarder que les fichiers et le -delete
qui, bien, les supprime. C'est plus efficace que d'appeler un rm
séparé pour chaque résultat.