Bonjour,
Je dois réaliser un script de "nettoyage" qui supprimera tous les fichiers d'une arborescence dont la date de modification est plus ancienne qu'un nombre de jour choisit par l'utilisateur.
Mais ces fichiers ne doivent pas être supprimer si il sont tout seul dans leur dossier...
Par exemple :
/racine--------dossier a--------fichier ancien 1
|
|---fichier ancien 2
|
|---fichier pas ancien 1
|
|---------dossier b -------------fichier pas ancien 2
Ici, les fichier ancien 1 et 2 sont supprimés dans le dossier a. Les fichiers pas anciens sont laissé intacte.
Cas un peu plus complexe :
/racine--------dossier a--------fichier ancien 1
|
|---fichier ancien 2
|
|---fichier ancien 3
|
|---------dossier b -------------fichier ancien 4
Ici, dans le dossier b, le fichier ancien est laissé car il est tout seul dans sont dossier.
Ici, les fichier anciens sont supprimés dans le dossier a, sauf un seul (de préférence le plus récent).
Je crois qu'au niveau du code, ce que je souhaite faire s’exprime avec la structure suivante :
supprimer fichier si :
fichier plus vieux que date choisit & fichier n'est pas tout seul dans son dossier
mais dans ce cas la, je suppose que ce n'est pas la version la plus récente du fichier qui sera épargner, mais plutôt la version la plus en bas dans la liste alphabétique.
J'ai réaliser quelques bout de script, je débute beaucoup en .sh sous linux, en revanche, comment tester si un fichier est seul dans son arborescence, je n'en ai aucune idée... et je ne voit pas du tout quelle structure adopté pour garder le fichier le plus récent, peut-être quelque chose comme :
si :
Tous les fichiers dans le dossier courant sont ancien
alors toucher ("touch") le fichier le plus récent
mais ça ne me parait pas très propre de modifier la date de dernière modification... je préférerais éviter parce qu'après je n'aurais plus aucune info sur l'ancienneté du fichier.
Auriez-vous au moins une idée d'une structure à laquelle je pourrais me référer ? Merci.
Partager