subpastas chown com o proprietário e o grupo da pasta atual

8

Em um script bash eu quero recursivamente chown todas as subpastas de uma pasta arbitrária com o usuário e os proprietários do grupo de determinada pasta.

Minha abordagem é algo como usar stat -c "%U %G" .

Mas isso retorna apenas um padrão de username[whitespace]groupname

É claro que eu poderia tentar ferramentas diferentes para substituir o espaço em branco por um : , mas eu preferiria usar uma maneira mais "integrada" se houvesse uma, para aplicar apenas a propriedade atual às subpastas.

    
por Jankapunkt 08.09.2017 / 17:00

2 respostas

6

chown , como chmod , pode usar uma referência :

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.

Então:

chown --reference=/some/folder -R /some/folder
    
por muru 08.09.2017 / 19:01
8

Você não precisa realmente analisar a saída para remover o espaço em branco - você adicionou isso ao seu comando! Você pode simplesmente formatá-lo como quiser (com a sintaxe de cólon de chown ) em primeiro lugar:

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

Então passe isso para chown com a substituição de comando:

chown -R $(stat -c "%U:%G" .) .
    
por Zanna 08.09.2017 / 17:06