Comment exécuter récursivement chmod
ou chown
pour les fichiers cachés?
Sudo chmod -R 775 *
ne fonctionne pas sur les fichiers cachés.
La même chose vaut pour Sudo chown -R user:group
.
Si vous êtes également en mesure de modifier le répertoire actuel, faites-le et laissez -R
se charger de tout. -R
n'ignore pas les fichiers cachés.
Sudo chmod -R 775 .
*
n'inclut pas les fichiers cachés par défaut, mais si vous êtes en bash, vous pouvez le faire avec:
shopt -s dotglob
En savoir plus à ce sujet dans bash builtin
manuel :
Si défini, Bash inclut les noms de fichiers commençant par un `. ' dans les résultats de l'expansion du nom de fichier.
Ceci fera que *
inclut également les fichiers cachés.
chmod -R 775 *
Désactivez-le avec:
shopt -u dotglob
Tous les fichiers du répertoire en cours, de manière récursive, y compris les fichiers cachés:
chmod 755 -R ./* ./.[!.]*
Tous les fichiers du répertoire en cours, et non de manière récursive, y compris les fichiers cachés:
chmod 755 ./* ./.[!.]*
Cela ne changera pas un nom de fichier d'exception commençant par 2 points, par exemple, "./..thisonescapesunharmed.txt"
Veillez également à ne pas supprimer le bit "x", sinon tous vos répertoires ne seront pas accessibles (il faut que le bit x soit inséré dans un répertoire).
N'oubliez pas cette alerte: n'utilisez jamais *
nu mais ./*
à la place.
Pour éviter les problèmes de configuration des autorisations sur les répertoires, utilisez plutôt find
.
find . -type f -exec chmod `VALUE` {} \;
Une autre option est d'utiliser find
je l'aime bien car vous pouvez avoir un contrôle très fin sur celui-ci.
find <path to start from> -exec chown <options> {} \+
find -path '<path to include>' -exec chown <options> {} \+
Le seul inconvénient est que find
a une syntaxe différente selon les versions.