it-swarm-pt.tech

Chmod recursivo: rw para arquivos, rwx para diretórios

Eu quero chmod muitos arquivos e diretórios. Como x indica lista de diretórios e executa para arquivos regulares, eu gostaria de aplicar rw para arquivos e rwx para diretórios. É possível usar apenas o comando chmod?

Caso contrário, qual é a maneira mais conveniente?

Fazendo um chmod -R 770 não é uma possibilidade, pois não quero que os arquivos regulares se tornem executáveis.

31
Deleted

Eu faço isso ocasionalmente usando um único comando find. Feio, mas eficaz.

find /p/a/t/h \( -type d -exec chmod 755 {} \; \) -o \( -type f -exec chmod 644 {} \; \)
19
baumgart

Use a permissão X, na página de manual:

Os bits de execução/pesquisa, se o arquivo for um diretório ou qualquer um dos bits de execução/pesquisa, estiverem definidos no modo original (não modificado). As operações com o símbolo perm "X" são significativas apenas em conjunto com o símbolo op "+" e são ignoradas em todos os outros casos.

Faça o seguinte:

chmod -R a-x [directory]
chmod -R a+rwX [directory]

Isso remove o bit de execução de todos os arquivos e diretórios, seguido pela adição de privilégios de leitura e gravação a tudo e executa privilégios apenas aos diretórios. (Nenhum arquivo regular possui o bit de execução mais desde o primeiro passo.)

40
Ben S

Você também pode usar find junto com xargs:

find . -type f -print0 | xargs -0 chmod 666
find . -type d -print0 | xargs -0 chmod 777

onde -type especifica d irectory ou f arquivo.

14
John T