58 votes

Comment changer le nom d'un répertoire de manière récursive, y compris pour les fichiers et répertoires cachés ?

Il semble que chown avec le drapeau récursif ne fonctionne pas sur les répertoires ou fichiers cachés. Existe-t-il une solution simple pour résoudre ce problème ?

80voto

Hamish Downer Points 9012

Je suis presque sûr que le -R Le drapeau fonctionne - il a toujours fonctionné pour moi en tout cas. Ce qui ne fonctionne pas, et ce qui m'a fait trébucher au début de mon utilisation de la ligne de commande, c'est l'utilisation de * dans un répertoire contenant des fichiers/répertoires cachés. Ainsi, en faisant

$ chown -R /home/user/*

ne traitera pas les fichiers et répertoires cachés. Cependant, si vous le faites suivre de

$ chown -R /home/user/.[^.]*

alors vous ferez tous les fichiers cachés, (mais pas les fichiers . o .. comme /home/user/.* le ferait). Cela dit, je m'attends à ce que

$ chown -R /home/user

pour obtenir tous les fichiers et répertoires cachés à l'intérieur de /home/user - mais cela modifiera également les permissions du répertoire lui-même, ce qui pourrait ne pas correspondre à votre intention.

13voto

MattrixHax Points 141

Je pense que la commande suivante devrait fonctionner

chown -hR userid:usergroup /nameofdirectory/nameofsubdir/

8voto

Zachary Scott Points 146

L'option "chown -R" fonctionne, mais une autre solution consisterait à utiliser find.

 find /path/to/dir -exec chown USER {} \;

4voto

Craig Points 289

De plus, si vous êtes comme moi, vous exécuterez probablement chown principalement à partir du répertoire courant. J'avais l'habitude de l'exécuter comme ceci : chown rails.rails -R * . Il suffit de remplacer l'astérisque par un point (abréviation du répertoire actuel) comme suit : chown rails.rails -R . fait apparaître tous les répertoires cachés.

4voto

AndroGuy Points 1

Vous pouvez modifier les dotglob pour étendre temporairement les fichiers . et de revenir ensuite en arrière.

shopt -s dotglob; chown -R user:group FOLDER; shopt -u dotglob

Plus d'informations dotglob peut être trouvée aquí

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X