Je pense que je suis assez avancé dans mon utilisation de find, mais CHAQUE fois que je l'utilise, je ne peux pas me souvenir de la méthode pour fermer l'option -exec. Je passe beaucoup de temps à lire chaque fois que je l'utilise. Est-ce que je ne l'utilise pas assez ou n'attends pas trop de moi? Commençons par un exemple typique qui me frustre.
La structure du répertoire contient des fichiers avec toutes les autorisations incorrectes, des fichiers symboliques, des liens symboliques, etc. Je veux changer la propriété en une valeur raisonnable
find . -type f -exec chown username {} \;
find . -type d -exec chown username {} \;
find . -type d -exec chgrp usergroup {} \;
find . -type f -exec chgrp usergroup {} \;
(Pardonnez-moi si la fin est à l'envers ... Je l'ai regardé il y a une heure et je ne suis toujours pas sûr)
Mais j'ai peur de le faire fonctionner à cause des montures, des liens symboliques, etc. J'ai fait l'ultime gaffe de chmod. * Et je l'ai fait reculer sur moi avant. Je sais que -xdev renoncera à traverser les partitions mais je ne suis pas sûr de ce qui arrivera aux fichiers vivant dans les répertoires qui sont des liens symboliques.
Alors, comment maîtriser cette bête qui peut tuer des fichiers cruciaux?
Mettez à jour l' élagage des meilleures suggestions ci-dessous et résumant:
- Avoir un répertoire de pratique lié et monté à d'autres répertoires de pratique.
- Utilisez xargs plutôt que la commande exec non intuitive.
- Utilisez -exec echo {} pour la santé mentale et la sécurité
- Le point-virgule est spécial et vous y échappez donc le caractère d'échappement est d'abord
- La commande -or peut vous aider à combiner des critères de sélection.
Je suis un peu confus au sujet du print0 mais xargs a toujours été un peu sur la pratique pas facile à comprendre à première vue que j'essaie d'éviter.