subcarpetas con el propietario y el grupo de la carpeta actual

8

En un script bash, quiero compartir recursivamente todas las subcarpetas de una carpeta arbitraria con los usuarios y los propietarios de los grupos de esa carpeta.

Mi enfoque es algo como usar stat -c "%U %G" .

Pero eso solo devuelve un patrón de username[whitespace]groupname

Por supuesto, podría probar diferentes herramientas para reemplazar el espacio en blanco con un, :pero preferiría usar una forma más "incorporada" si existe, para aplicar la propiedad actual a las subcarpetas.

Jankapunkt
fuente

Respuestas:

6

chown, como chmod, puede usar una referencia:

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.

Entonces:

chown --reference=/some/folder -R /some/folder
muru
fuente
8

En realidad, no necesita analizar el resultado para eliminar el espacio en blanco: ¡lo agregó en su comando! En primer lugar, puede formatearlo como desee (con chownla sintaxis de dos puntos):

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

Así que solo pasa eso a chowncon la sustitución de comandos:

chown -R $(stat -c "%U:%G" .) .
Zanna
fuente
A veces estoy ciego por lo obvio. ¡Gracias!
Jankapunkt