Je veux chmod
beaucoup de fichiers et de répertoires. Comme l' x
indique la liste des répertoires et exécuter pour les fichiers réguliers, je voudrais appliquer rw
pour les fichiers et rwx
pour les répertoires. Est-il possible d'utiliser uniquement la chmod
commande?
Si ce n'est pas le cas, quel est le moyen le plus pratique?
Faire un chmod -R 770
n'est pas une possibilité car je ne veux pas que les fichiers normaux deviennent exécutables.
linux
permissions
file-management
Effacé
la source
la source
Réponses:
Je fais cela à l'occasion en utilisant une seule
find
commande. Moche mais efficace.la source
find . -type d -exec chmod -vc 755 "{}" \;
(y compris-vc
pour certains commentaires). (Et peut-être, juste pour clarifier, ajouter également les deux commandes autonomes à la réponse?)Utilisez l'autorisation X, à partir de la page de manuel:
Faites donc ce qui suit:
Cela supprime le bit d'exécution de tous les fichiers et répertoires, puis ajoute des privilèges de lecture et d'écriture à tout, et n'exécute des privilèges qu'aux répertoires. (Aucun fichier régulier n'a plus le bit d'exécution depuis la première étape.)
la source
chmod -R a-x [directory]
suivi parchmod -R a+rwX [directory]
?a-x
, le répertoire n'est pas accessible. En fait, chmod échoue avec l'autorisation refusée et ne supprimera pas le bit exécutable des fichiers dans le répertoire. Existe-t-il un moyen de le faire sans être root?Vous pouvez également utiliser
find
avecxargs
:où
-type
précise ; d irectory ou f ile.la source
xargs
est assez intelligent pour couper de longues lignes de commande en plusieurs exécutions. Consultez votre page de manuel xargs et assurez-vous de vérifierxargs --show-limits
.