designando arquivos de um grupo para outro

5

Eu quero excluir um grupo usando o comando groupdel , mas antes de fazer isso, quero atribuir todos os arquivos pertencentes a esse grupo a outro. Existe uma maneira de fazer isso?

Eu sei que posso usar find / -gid group_id para encontrar arquivos que pertencem a esses grupos e, em seguida, atribuí-los manualmente a um novo. Eu procuro uma maneira de fazer a tarefa automaticamente.

    
por Sam 15.05.2012 / 17:36

1 resposta

4

find / -group <groupname> -exec chown :<groupname> {} \+

deve fazer o truque. Apenas substitua <groupname> pelo nome apropriado.

find permite que você chame comandos arbitrários nos arquivos que ele retorna, usando o -exec primary. Neste caso, como sabemos que queremos alterar a propriedade do grupo de cada arquivo correspondente, podemos simplesmente passar o comando chown (e quaisquer argumentos - nesse caso, o nome do grupo para cuja propriedade desejamos transferir os nomes dos arquivos correspondentes , precedido por : , que diz chown para tratá-lo como um nome de grupo e não como um nome de usuário) como o argumento para -exec . O nome do arquivo retornado por find é inserido no comando no lugar de {} e +; informa find que ele atingiu o final do comando externo e deve analisar quaisquer parâmetros adicionais como próprios. Usar \+ em vez de \; diz ao find para processar vários arquivos em cada comando (assim é mais eficiente).

    
por 15.05.2012 / 18:05

Tags