Como aplicar diretórios chmod recursivamente sem afetar os arquivos?


18

Depois de me inscrever chmod -Rem um diretório, as permissões são alteradas para tudo dentro de (arquivos e diretórios). Como posso adicionar xpermissões execute / search ( ) aos diretórios sem modificar os arquivos?

Respostas:


13

Você pode usar o find .

find ./ -type d -execdir chmod 750 {} +

Onde 750 é o modo que você deseja aplicar e "./" é o diretório que você pesquisará recursivamente.

EDIT : Graças ao @Gilles e find (1) , revisei isso para obter segurança e desempenho adicionais.


@ Gilles Obrigado, não é muito frequente que eu aprenda algo novo sobre as ferramentas Unix :-) Isso é incrível. Além disso, agora lendo a documentação de localização , deve-se realmente usar -execdir.
ewindisch

7

Nesse caso específico, você pode usar, em Xvez de xadicionar apenas os bits aos diretórios ou arquivos que já possuem o bit executável definido para algum usuário (ou seja chmod -R +X my_dir).

Em geral (por exemplo, se você deseja tornar todos os diretórios legíveis sem afetar os arquivos), você pode usar findcom -type dou se estiver usando zsh (ou bash 4 com shopt -s globstar) o **/glob (ambos sem passar a -Rbandeira chmod).


@ Gilles: Bom ponto, eu adicionei isso à resposta.
sepp2k

11
"use X em vez de x, que apenas adiciona os bits aos diretórios ou arquivos que já possuem o bit executável definido para algum usuário" - Obrigado! Eu senti muita falta disso!
Ivan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.