De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Como criar 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

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


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