sous-dossiers chown avec le propriétaire et le groupe du dossier actuel

8

Dans un script bash, je souhaite afficher de manière récursive tous les sous-dossiers d'un dossier arbitraire avec les propriétaires d'utilisateurs et de groupes de ce dossier donné.

Mon approche est quelque chose comme utiliser stat -c "%U %G" .

Mais cela ne renvoie qu'un modèle de username[whitespace]groupname

Bien sûr, je pourrais simplement essayer différents outils pour remplacer l'espace blanc par un :mais je préférerais utiliser une méthode plus "intégrée" s'il y en a un, pour simplement appliquer la propriété actuelle aux sous-dossiers.

Jankapunkt
la source

Réponses:

6

chown, comme chmod, peut utiliser une référence:

chown [OPTION]... --reference=RFILE FILE...

Change the owner and/or group of each FILE to OWNER and/or GROUP.  With
--reference, change the owner and group of each FILE to those of RFILE.

Donc:

chown --reference=/some/folder -R /some/folder
muru
la source
8

Vous n'avez pas vraiment besoin d'analyser la sortie pour supprimer l'espace blanc - vous l'avez ajouté dans votre commande! Vous pouvez simplement le formater comme vous le souhaitez (avec chownla syntaxe des deux points) en premier lieu:

$ stat -c "%U:%G" .
zanna:unicorns

Il suffit donc de passer cela à la chownsubstitution de commande:

chown -R $(stat -c "%U:%G" .) .
Zanna
la source
Parfois, je suis juste aveugle pour l'évidence. Je vous remercie!
Jankapunkt le