você está aqui: Home  → Arquivo de Mensagens

Copiando uma estrutura de pastas sem copiar os arquivos

Colaboração: Sérgio Luiz Araújo Silva

Data de Publicação: 23 de junho de 2010

Combinaremos:

  1. Conceito de subshell (executa comandos sem sair do diretório corrente)
  2. Comando find com a opção '-type d -print0' lista diretórios e marca como delimitador o caractere zero.
  3. Comando xargs com a opção '0'
  4. mkdir com a opção '-p'

Tomemos por exemplo a estrutura de uma pasta ~/docs:

  ( cd ~/docs ; find -type d -print0 ) | xargs -0 mkdir -p
       |
       |
       + -------> diretório base

O trecho entre parênteses é executado num subshell. A intenção é gerar a lista das pastas à partir do diretório indicado, o print0 do find ajuda a evitar que pastas com nomes compostos gerem duas ou mais pastas. Note que o xargs tem também uma opção zero '0' para pegar este delimitador. Outra função do xargs é evitar estouro de pilha. O xargs só entrega ao mkdir blocos de um tamanho aceitável sendo muito mais rápido do que a opção`` -exec`` do find.

Para pesquisar dica sobre bash no meu blog: http://vivaotux.blogspot.com/search/label/bash


Veja a relação completa dos artigos de Sérgio Luiz Araújo Silva

 

 

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