meu comando de permissão não funciona corretamente

1
find . a* -exec chmod o+r {} \;
find . *d -exec chmod o+x {} \;

Eu quero dar o+r para todos os arquivos que começam com "a" e o+x para todos os arquivos que terminam com "d", mas essas linhas parecem afetar todos os arquivos no diretório.

    
por asura 28.09.2014 / 05:15

1 resposta

3

Coloque a * e d * entre aspas, para que o shell não as expanda, além de adicionar a palavra-chave -name. Se você quiser apenas procurar por arquivos e não por diretórios, por exemplo, adicione -type f.

find . -name 'a*' -type f -exec chmod o+r {} \;
find . -name '*d' -type f -exec chmod o+x {} \;

Se você quiser alterar apenas no diretório atual e não nos subdiretórios, adicione a opção -maxdepth

find . -maxdepth 1 -name 'a*' -type f -exec chmod o+r {} \;
find . -maxdepth 1 -name '*d' -type f -exec chmod o+x {} \;
    
por 28.09.2014 / 05:34