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.

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

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" .) .

A veces estoy ciego por lo obvio. ¡Gracias!
Jankapunkt
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.