Como recursivamente alterar as permissões em todos os diretórios dentro do diretório atual?

6

Como posso alterar as permissões de pasta e arquivo para todos os arquivos e pastas recursivamente dentro do diretório atual? Não tenho certeza, porque, mas meu comando falha com isso

output: chmod: missing operand after '644./components/path/path/path'

Meu comando é:

find . * -type d -exec chmod 755{} \;

Como o usuário pdo apontou, desejo alterar as permissões da pasta para 755 -

    
por Alan Kis 08.01.2016 / 21:23

2 respostas

11

Você está perdendo um espaço depois de 644.

Além disso, 644 provavelmente não é o que você deseja em um diretório. Você provavelmente quer 755.

Edite para incluir a resposta dos comentários abaixo:

Para diretórios:

find . -type d -exec chmod 755 {} \;

Para arquivos:

find . -type f -exec chmod 644 {} \;

Há muito provavelmente outras formas (talvez mais curtas) de fazer isso, mas isso funcionará.

    
por 08.01.2016 / 21:26
6

Outra maneira de fazer isso é:

chmod -R u=rwX,g=rX,o=rX /path/to/dir

O capital X é uma execução condicional - se o arquivo for um diretório, o bit de execução será adicionado OU se o arquivo já for executável, o bit de execução será mantido.

Embora isso adicione permissões a arquivos que não são de diretório. Se essas permissões forem aceitáveis, isso funcionará para adicionar rapidamente o acesso às pastas.

    
por 08.01.2016 / 21:43

Tags