Réponses:
Vous pouvez le faire avec cette commande
find /path/to/files* -mtime +365 -exec rm {} \;
Certains expliquent
/path/to/files* est le chemin d'accès aux fichiers.
-mtimeest utilisé pour spécifier le nombre de jours d'ancienneté du fichier. +365 trouvera les fichiers de plus de 365 jours, soit un an
-exec vous permet de passer une commande telle que rm.
Modifier Merci à @Oli note -> vous pouvez le faire en:
find /path/to/files* -mtime +365 -delete
"{}"transforme {}avant de la passer à findla première place; puis la findremplace. La citation {}est suggérée au cas où {et }eux-mêmes peuvent parfois être traités spécialement par la coquille - qui n'a rien à faire avec des espaces vides. Et souvent, il {}n'est pas nécessaire de les citer. Je ne peux penser à aucune situation, du moins lors de l'invocation de find à partir d'un shell de style Bourne, où {}, sans rien à l'intérieur, apparaissant seul comme argument, doivent être cités. Pouvez-vous?)
findpoignées s'échappent pour elles-mêmes, mais ce n'est pas une mauvaise habitude d'être dans le script. Ça ne fait pas mal.
findne gérait pas l'échappement, "{}"aurait toujours le même effet que {}--juste ni l'un ni l'autre ne fonctionnerait, au lieu que les deux fonctionnent. Cela {}et "{}"le même comportement ne sont pas - et ne peuvent pas être - dus à une caractéristique spéciale de find. Confondre ce qui est développé par le shell avec ce qui est développé par un autre programme est une mauvaise habitude. Nous faisons tous cette erreur de temps en temps, mais c'est toujours une erreur - pas une meilleure pratique. (On pourrait toujours citer {}pour aider les humains à voir que ce n'est pas un modèle d'expansion d'accolade, mais cela n'a rien à voir avec le fractionnement des mots.)
{}in-exec(pour qu'il soit lu-exec rm "{}" \;). Cela garantit que les espaces sont gérés correctement ... Et vous pouvez simplement utiliser la-deletefonction à la place de-exec.