Como chmod e chown arquivos ocultos no Linux?

28

Como recursivamente executo chmod ou chown para arquivos ocultos?

sudo chmod -R 775 * não funciona em arquivos ocultos.

O mesmo vale para sudo chown -R user:group .

    
por nothing-special-here 12.10.2011 / 15:09

4 respostas

33

Se você está bem também chmod'ing o diretório atual, faça isso e deixe -R fazer o trabalho pesado. -R não ignora arquivos ocultos.

sudo chmod -R 775 .
    
por 12.10.2011 / 15:17
31

* não inclui arquivos ocultos por padrão, mas se você estiver no bash, poderá fazer isso com:

shopt -s dotglob

Leia mais sobre isso no bash's builtin manual :

If set, Bash includes filenames beginning with a '.' in the results of filename expansion.

Isso fará com que * também inclua arquivos ocultos.

chmod -R 775 *

Desative-o com:

shopt -u dotglob
    
por 12.10.2011 / 15:16
2

Outra opção é usar find i como você pode ter um controle muito refinado sobre isso.

find <path to start from> -exec chown <options> {} \+

find -path '<path to include>' -exec chown <options> {} \+

A única desvantagem é que find tem uma sintaxe diferente em versões diferentes.

    
por 09.04.2013 / 09:38
1

Todos os arquivos no diretório atual, recursivamente, incluindo arquivos ocultos:

chmod 755 -R ./* ./.[!.]*

Todos os arquivos no diretório atual, não recursivamente, incluindo arquivos ocultos:

chmod 755 ./* ./.[!.]*

Isso não irá alterar um nome de arquivo de exceção começando com 2 pontos, como por exemplo, "./..thisonescapesunharmed.txt"

Além disso, tenha cuidado para não remover o bit "x", ou então todos os seus diretórios não estarão acessíveis (é necessário o bit x para fazer o cd em um diretório).

Lembre-se deste alerta: nunca use * , mas ./* em seu lugar.

Para evitar problemas na configuração de permissões em diretórios, use find .

find . -type f -exec chmod 'VALUE' {} \;
    
por 11.09.2015 / 21:50