Como executo recursivamente chmod
ou chown
para arquivos ocultos?
sudo chmod -R 775 *
não funciona em arquivos ocultos.
A mesma coisa vale para sudo chown -R user:group
.
Se você estiver bem também modificando o diretório atual, faça isso e deixe -R
o trabalho pesado. -R
não ignora arquivos ocultos.
sudo chmod -R 775 .
* .*
) não é a maneira mais segura de fazer isso. Particularmente, ele retornaria para o diretório pai, o que significa quechmod
também é irmão do diretório atual. A maneira correta seria* ..?* .[^.]*
ou, melhor ainda (considerando que os curingas podem não corresponder a nenhum arquivo)$(ls -A)
.ls
é incomparável; tentar analisar é pedir problemas. A abordagem adequada é usar globbing shell.sudo chmod 775 -R
iria de barriga para cima, de modo a manter esta resposta .*
não inclui arquivos ocultos por padrão, mas se você estiver no bash, poderá fazer isso com:Leia mais sobre isso no
builtin
manual do bash :Isso fará
*
incluir arquivos ocultos também.Desative-o com:
fonte
zsh
?(D)
qualificador de globbing, por exemplochmod -R 775 *(D)
Outra opção é usar o que
find
eu gosto, pois você pode ter um controle de granulação muito fina sobre ele.A única desvantagem é que
find
tem sintaxe diferente em versões diferentes.fonte
Todos os arquivos no diretório atual, recursivamente, incluindo arquivos ocultos:
Todos os arquivos no diretório atual, não recursivamente, incluindo arquivos ocultos:
Isso não altera um nome de arquivo de exceção que começa com 2 pontos, como exemplo,
"./..thisonescapesunharmed.txt"
Além disso, tenha cuidado para não remover o bit "x", ou todos os seus diretórios não estarão acessíveis (é necessário que o bit x seja inserido em um diretório).
Lembre-se deste alerta: nunca use nu,
*
mas./*
sim.Para evitar problemas ao definir permissões nos diretórios, use em seu
find
lugar.fonte