Comment récupérer correctement les fichiers récursivement (y compris les répertoires cachés)

8

Cette énigme est causée par l'exécution à git pullpartir de la racine.

Il y a plusieurs raisons pour moi de le faire ... Je veux que mon appareil mette à jour le code au démarrage et rc.localest exécuté par root.

Tout fonctionne très bien (a npm installtendance à échouer lorsqu'il est exécuté par root, mais c'est un tout autre sujet), le problème se pose lorsque j'essaie d'utiliser le référentiel git avec un utilisateur non root par la suite ... certains des fichiers git ont été écrit par root, donc maintenant je ne peux plus l'utiliser (permission refusée).

Je voudrais donc le récursivement chown, mais il ne semble pas y avoir quoi que ce soit qui fonctionne vraiment sur tous les petits fichiers git. J'ai essayé le -Rdrapeau et le ./**/*chemin.

Je suppose qu'aucune de ces techniques ne descend dans les répertoires de points.

Steven Lu
la source
1
Quel shell utilisez-vous? Dans bashvous devez définir shopt -s dotglobafin de faire correspondre les fichiers cachés par *ou **.
jimmij
1
@jimmij bon à savoir, merci (vous pouvez probablement mettre cela comme réponse)
Steven Lu
Avez-vous chown -R *, au lieu de chown -R .?
Peter Cordes

Réponses:

16

La commande suivante fonctionne pour moi dans Ubuntu. Il a changé la propriété de tous les fichiers et répertoires de manière récurrente

sudo chown -R someuser:somegroup YourDir
Valarpirai
la source
J'ai essayé sudo chown -R me:me .et quand ls -altous mes fichiers appartiennent toujours à root. Pourquoi ça ne marche pas?
Richard
@Richard avez-vous essayé d'utiliser un chemin absolu ou ./?
vdegenne
0

J'utilise à la treeplace:

 sudo tree -fai ~/.blabla  | xargs -L1 -I{} sudo chown youruser:youruser {}

Veillez également à ne pas exécuter chown récursif ou chmod sur le répertoire '/' ou tout autre répertoire système.

Eduard Florinescu
la source