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

8

Em um script bash, quero exibir recursivamente todas as subpastas de uma pasta arbitrária com o usuário e o proprietário do grupo dessa 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 apenas tentar ferramentas diferentes para substituir o espaço em branco por um, :mas eu preferiria usar uma maneira mais "interna", se houver, para aplicar apenas a propriedade atual às subpastas.

Jankapunkt
fonte

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.

Assim:

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

Na verdade, você não precisa analisar a saída para remover o espaço em branco - você adicionou isso em seu comando! Você pode formatá-lo como quiser (com chownsintaxe de dois pontos) em primeiro lugar:

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

Então, basta passar isso para chownsubstituição de comando:

chown -R $(stat -c "%U:%G" .) .
Zanna
fonte
Às vezes, sou cego pelo óbvio. Obrigado!
Jankapunkt