web-dev-qa-db-fra.com

Comment chmod et chown les fichiers cachés sous Linux?

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.

30

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 .
33
John Kugelman

* 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
34
slhck

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` {} \;
2
Dr Beco

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.

2
RedX