On dirait que chown avec l'indicateur récursif ne fonctionnera pas sur les répertoires ou fichiers cachés. Y a-t-il une solution simple à cela?
Je suis sûr que le -R
le drapeau fonctionne - il a toujours pour moi de toute façon. Ce qui ne fonctionnera pas et ce qui m'a fait trébucher au début de mon utilisation de la ligne de commande, c'est d'utiliser *
dans un répertoire avec des fichiers/répertoires cachés. Ce faisant
$ chown -R /home/user/*
ne fera pas les fichiers et répertoires cachés. Cependant, si vous le suivez avec
$ chown -R /home/user/.[^.]*
alors vous ferez tous les fichiers cachés, (mais pas .
ou ..
comme /home/user/.*
ferait). Cela dit, je m'attendrais à ce que
$ chown -R /home/user
pour obtenir tous les fichiers et répertoires cachés dans /home/user
- bien que cela changera bien sûr aussi les permissions du répertoire lui-même, ce qui pourrait ne pas être ce que vous vouliez.
je crois que la commande suivante devrait fonctionner pour cela
chown -hR userid:usergroup /nameofdirectory/nameofsubdir/
"chown -R" fonctionne, mais une alternative serait d'utiliser find.
find /path/to/dir -exec chown USER {} \;
Vous pouvez modifier temporairement l'attribut dotglob
pour le développer. fichiers, puis le restaurer.
shopt -s dotglob; chown -R user:group FOLDER; shopt -u dotglob
Plus sur dotglob
peut être trouvé ici
Utilisation de for-loop avec ls -A
option, nous pouvons trouver tous les fichiers et répertoires cachés exclure .
et ..
, puis modifiez la propriété de tous les fichiers et répertoires masqués.
for i in `ls -A | grep "^\."`;do chown -R user:group $i;done
Utilisez l'option xargs
avec ls -A
ls -A | grep "^\." | xargs chown user:group
Pour plus de détails Cliquez ici et visitez mon site
chown
fonctionnera avec les fichiers et répertoires cachés. Dans l'exemple suivant, nous allons modifier la propriété de l'utilisateur et du groupe pour tous les fichiers dans ~/some/folder
. Tous les fichiers incluent tous les fichiers cachés ( par exemple .bashrc
, .profile
etc.) et des dossiers dans le ~/some/folder
niveau et inférieur. Notez en particulier que nous ne souhaitons pas changer la propriété de ~/some
, et donc nous exclurons le fichier ~/some/..
des changements de propriétaire.
$ cd ~/some/folder
$ Sudo chown -R usrname:grpname .
$
De plus, si vous êtes comme moi, vous exécuterez probablement chown principalement à partir du répertoire actuel. J'étais habitué à le faire comme ceci: chown Rails.rails -R *
. Changer simplement l'astérisque en un point (abréviation du répertoire courant) comme ceci: chown Rails.rails -R .
apporte tous les répertoires cachés.
Pour afficher TOUS les fichiers dans le répertoire et les sous-répertoires actuels de l'utilisateur actuel;
find . -exec chown $(whoami) {} \;
ou si l'utilisateur ne peut pas afficher certains fichiers en raison d'autorisations restreintes;
Sudo find . -exec chown $(logname) {} \;