J'avais auparavant utilisé une simple commande find pour supprimer les fichiers tar non consultés au cours des x derniers jours (dans cet exemple, 3 jours) :
find /PATH/TO/FILES -type f -name "*.tar" -atime +3 -exec rm {} \;
Je dois maintenant améliorer ce script en supprimant par ordre de date d'accès et mes compétences en écriture bash sont un peu rouillées. Voici ce que j'ai besoin qu'il fasse :
- vérifier la taille d'un répertoire /PATH/TO/FILES
- si la taille en 1) est supérieure à la taille X, obtenir une liste des fichiers par date d'accès
- supprimer les fichiers dans l'ordre jusqu'à ce que la taille soit inférieure à X
L'avantage ici est que pour les répertoires de cache et de sauvegarde, je ne supprimerai que ce dont j'ai besoin pour rester dans une limite, alors que la méthode simplifiée pourrait dépasser la limite de taille si un jour est particulièrement important. Je suppose que je dois utiliser stat et une boucle for bash ?