Eu acho que estou bastante avançado no meu uso do find, mas toda vez que eu o uso, não consigo lembrar o método para fechar a opção -exec. Passo bastante tempo lendo cada vez que o uso. Simplesmente não estou usando o suficiente ou esperando muito de mim? Vamos começar com um exemplo típico que me deixa frustrado.
A estrutura de diretórios possui arquivos com todas as permissões incorretas, arquivos ocultos, links simbólicos etc. Desejo alterar a propriedade para um valor razoável
find . -type f -exec chown username {} \;
find . -type d -exec chown username {} \;
find . -type d -exec chgrp usergroup {} \;
find . -type f -exec chgrp usergroup {} \;
(Perdoe-me se o final está ao contrário ... olhei para ele há uma hora e ainda não tenho certeza)
Mas estou com medo de executá-lo por causa de montagens, links simbólicos etc. Fiz a melhor brincadeira com o chmod. * E tive que recorrer a mim antes. Eu sei que o -xdev renunciará ao atravessar partições, mas não tenho certeza do que acontecerá com os arquivos que vivem dentro de diretórios que são links simbólicos.
Então, como alguém domina essa fera que pode matar arquivos cruciais?
Atualize a remoção das melhores sugestões abaixo e o resumo:
- Tenha um diretório de prática vinculado e montado em outros diretórios de prática.
- Use xargs em vez do comando exec não-intuitivo.
- Use -exec echo {} para sanidade e segurança
- O ponto e vírgula é especial e você está escapando, portanto o caractere de escape é o primeiro
- O comando -or pode ajudá-lo a combinar critérios de seleção.
Estou um pouco confuso com o print0, mas o xargs sempre foi um pouco difícil de entender, à primeira vista, na prática que tento evitar.