Au moment où, de nombreux fichiers sont encore sur mon système et je n'en ai plus besoin, alors comment supprimer tous les fichiers qui ont au moins un an?
command-line
Maythux
la source
la source
{}
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-delete
fonction à la place de-exec
."{}"
transforme{}
avant de la passer àfind
la première place; puis lafind
remplace. 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?)find
poigné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.find
ne 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.)