Respostas:
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 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 -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.
for i in `ls -A | grep "^\."`;do chown -R user:group $i;done
Use a xargs
opçã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.
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.
$ 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 '..'
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.