
Preciso saber como aplicar um comando CHMOD apenas a arquivos que possuem um nome específico de forma recursiva?
chmod 755 -R filename
Algo como acima, mas deve se aplicar a qualquer um filename
que exista em qualquer subpasta.
Responder1
Isso encontrará todos os arquivos nomeados filename, recursivamente do diretório atual, e os transmitirá para chmod
.
find -name filename | xargs chmod 755
Consulte as páginas de manual find
para xargs
opções mais avançadas. Em particular, observe o -print0
sinalizador e correspondente -0
se xargs
você receber erros sobre arquivos com espaços no nome.
Responder2
Há também um parâmetro exec em find que fará o mesmo:
find . -name filename -exec chmod 755 {} \;
Responder3
Você pode obter o melhor dos dois mundos se usar o +
operador find para executá-lo chmod
em vários arquivos ao mesmo tempo.
find . -name filename -exec chmod 755 '{}' +
Você deve sempre colocar um '
em volta do seu {}
, caso contrário, um nome de arquivo com um espaço pode atrapalhar as coisas. Neste caso não é problema, mas tenho o hábito de fazer isso.