Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Curso de Inglês Online

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

chmod, chown, chgrp, find e xargs

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 01 de Julho de 2007

Para alterar recursivamente a propriedade de uma árvore de diretórios para uma determinada pessoa e grupo, usamos o comando chown:

  chown -R queiroz:queiroz ~queiroz

O argumento queiroz:queiroz identifica o nome do usuário e o grupo ao qual pertence. Fornecer os dois argumentos é opcional, podemos especificar apenas o nome do usuário, como abaixo:

  chown -R queiroz ~queiroz

Caso queiramos trocar apenas a propriedade do grupo, o comando é outro, chgrp:

  chgrp -R queiroz ~queiroz

Até aqui tudo bem. Entretanto, frequentemente usamos os comandos chgrp e chown em conjunto com o comando xargs e find:

  find . -type d | xargs chown -R queiroz

Com o comando acima, pretendo alterar apenas a propriedade dos diretórios a partir de um determinado ponto. Se existir algum diretório com um nome que contenha espaços em branco, teremos problema.

  # find . -type d | xargs chown -R queiroz
  chown: impossível acessar `./Rubens': Arquivo ou diretório não encontrado
  chown: impossível acessar `Queiroz': Arquivo ou diretório não encontrado
  chown: impossível acessar `de': Arquivo ou diretório não encontrado
  chown: impossível acessar `Almeida': Arquivo ou diretório não encontrado
  chown: impossível acessar `./Rubens': Arquivo ou diretório não encontrado
  chown: impossível acessar `Queiroz': Arquivo ou diretório não encontrado
  chown: impossível acessar `de': Arquivo ou diretório não encontrado
  chown: impossível acessar `Almeida/Dia': Arquivo ou diretório não encontrado
  chown: impossível acessar `de': Arquivo ou diretório não encontrado
  chown: impossível acessar `Faxina': Arquivo ou diretório não encontrado

No exemplo acima eu criei dois diretórios com espaços em branco em seu nome: Rubens Queiroz de Almeida e Dia de Faxina. O comando xargs forneceu como entrada ao comando chown, as partes individuais dos nomes, levando em consideração o espaço em branco como delimitador do nome.

Para resolver este problema, precisamos informar ao comando xargs que o delimitador é outro:

  find . -type d -print0 | xargs -0 chown -R queiroz

A opção -print0 termina os nomes dos arquivos com um zero, de forma que os nomes de arquivos com espaços em branco sejam corretamente tratados. Da mesma forma, no comando xargs o argumento -0 indica que o separador do nome dos arquivos é o zero e não o espaço em branco.

O argumento -print é opcional. Versões antigas de sistemas Unix exigiam que fosse especificado no comando find. As versões modernas de sistemas GNU/Linux e FreeBSD não exigem sua especificação, a não ser em casos como acima, em que atribuimos um valor diferente do padrão ao delimitador do nome de arquivos.

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.02/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1477 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Lan University

Submarino.com.br

Encontre imóveis, apartamentos e casas a venda no Imobilien
Saiba mais

 

 

Procure pela casa ou apartamento ideal à venda ou para aluguel na busca inteligente do Imohoo
Buscar imóveis