Parece que o chown com o sinalizador recursivo não funcionará em diretórios ou arquivos ocultos. Existe alguma solução simples para isso?
37
Tenho certeza de que a -R
bandeira funciona - sempre funciona para mim. O que não vai funcionar, e o que me deu uma surra no início do uso da linha de comando, é usar *
um diretório com arquivos / diretórios ocultos. Fazendo
$ chown -R /home/user/*
não fará os arquivos e diretórios ocultos. No entanto, se você o seguir com
$ chown -R /home/user/.[^.]*
então você fará todos os arquivos ocultos (mas não .
ou ..
como /home/user/.*
faria). Dito tudo isso, eu esperaria
$ chown -R /home/user
para obter todos os arquivos e diretórios ocultos /home/user
- embora isso também altere as permissões do próprio diretório, o que pode não ser o que você pretendia.
chown
no diretório tem o efeito colateral de alterar as permissões no próprio diretório, bem como todo o seu conteúdo, que pode ou não ser o que você deseja.chown nginx:nginx -R /path/to/.[^.]*
e só mudou a propriedade para .dot arquivos ocultos. não tudo.*
e segui-lo.[.^]*
para obter todos os arquivos.Eu acredito que o seguinte comando deve funcionar para este
fonte
"chown -R" funciona, mas uma alternativa seria usar find.
fonte
+
, em vez de;
como o terminador ao -exec será mais eficiente como ele vai usar o número mínimo necessário de garfos chown em vez de um garfo por arquivo / diretórioVocê pode alterar o
dotglob
atributo temporariamente para expandir. arquivos e depois revertê-lo.Mais informações
dotglob
podem ser encontradas aquifonte
Usando for-loop com
ls -A
opção, podemos encontrar todos os arquivos ocultos e diretório excluir.
e..
em seguida, altere a propriedade de todos os arquivos ocultos e diretório.Use a
xargs
opção comls -A
Para mais detalhes, clique aqui e visite o meu site
fonte
Além disso, se você é como eu, provavelmente estará executando chown principalmente no diretório atual. Eu estava acostumado a executá-lo como este:
chown rails.rails -R *
. Simplesmente alterando o asterisco para um ponto (abreviação do diretório atual) como este:chown rails.rails -R .
traz todos os diretórios ocultos.fonte
chown
funcionará com arquivos e diretórios ocultos. No exemplo a seguir, alteraremos a propriedade do usuário e do grupo para todos os arquivos~/some/folder
. Todos os arquivos incluem todos os arquivos ocultos (por exemplo.bashrc
,.profile
etc.) e pastas no~/some/folder
nível e abaixo. Observe, em particular, que não desejamos alterar a propriedade~/some
e, portanto, excluiremos o arquivo~/some/..
das alterações de propriedade.fonte
Para exibir TODOS os arquivos no diretório atual e subdiretórios do usuário atual;
ou se o usuário não puder exibir alguns arquivos devido a permissões restritas;
fonte
Você poderia fazer algo como
O
-A
( capital A) é importante, pois exclui '.' e '..'fonte