pourquoi cela ne fonctionne-t-il pas, j'essaie de modifier tous les fichiers en 644 et tous -d en 755:
find . -type f -exec chmod 644 {} ;
i get: find: argument manquant pour `-exec ' merci
Tuyauterie vers xargs est une mauvaise façon de faire ce qui peut être fait dans find.
find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;
Vous pouvez être encore plus contrôlant avec d'autres options, telles que:
find . -type d -user harry -exec chown daisy {} \;
Vous pouvez faire des choses très cool avec find et vous pouvez faire des choses très dangereuses aussi. Jetez un coup d'œil à "trouver un homme", c'est long mais mérite une lecture rapide. Et, comme toujours, souvenez-vous:
Une bonne alternative est la suivante:
find . -type f | xargs chmod -v 644
et pour les annuaires:
find . -type d | xargs chmod -v 755
et pour être plus explicite:
find . -type f | xargs -I{} chmod -v 644 {}
J'ai besoin de cela si souvent que j'ai créé une fonction dans mon ~/.bashrc
fichier:
chmodf() {
find $2 -type f -exec chmod $1 {} \;
}
chmodd() {
find $2 -type d -exec chmod $1 {} \;
}
Maintenant, je peux utiliser ces raccourcis:
chmodd 0775 .
chmodf 0664 .