Respostas:
Tenho certeza de que a -Rbandeira 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 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
chown -hR userid:usergroup /nameofdirectory/nameofsubdir/
"chown -R" funciona, mas uma alternativa seria usar find.
find /path/to/dir -exec chown USER {} \;
+, 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ório
Usando for-loop com ls -Aopçã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.
for i in `ls -A | grep "^\."`;do chown -R user:group $i;done
Use a xargsopção comls -A
ls -A | grep "^\." | xargs chown user:group
Para mais detalhes, clique aqui e visite o meu site
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.
chownfuncionará 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, .profileetc.) e pastas no ~/some/foldernível e abaixo. Observe, em particular, que não desejamos alterar a propriedade ~/somee, portanto, excluiremos o arquivo ~/some/..das alterações de propriedade.
$ cd ~/some/folder
$ sudo chown -R usrname:grpname .
$
Você poderia fazer algo como
for i in `ls -A`;do chown -R user:group $i;done
O -A( capital A) é importante, pois exclui '.' e '..'
chownno 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.