Copie a estrutura de pastas de nível superior sem copiar arquivos no linux

3

Eu gostaria de copiar uma estrutura de pastas (sem os arquivos), mas apenas as pastas de nível superior. Ou seja, com minha fonte:

folder a
 * folder 1
 * folder 2
   * folder X
folder b
 * folder 3
folder c

Eu quero que meu destino seja simplesmente:

folder a
folder b
folder c

Como posso fazer isso no Linux?

    
por Stephen Schrauger 26.09.2013 / 15:08

2 respostas

5

Com o GNU find , que suporta -printf , e o GNU xargs , que suporta -r :

find /source/path -mindepth 1 -maxdepth 1 -type d -printf '/target/path/%f
find /source/path -mindepth 1 -maxdepth 1 -type d -printf '/target/path/%f%pre%' | xargs -r -0 -- mkdir --
' | xargs -r -0 -- mkdir --
    
por 26.09.2013 / 15:10
2

Você pode simplesmente fazer isso:

for dir in *; do mkdir /path/to/"$dir"; done

Isso pressupõe que você deseja copiar tudo no diretório atual e que tudo que você tem nesse diretório são as pastas de destino, sem arquivos. Ele coletará todos os nomes no diretório atual ( * ) e executará mkdir para criar pastas vazias com esse nome no caminho de destino.

    
por 26.09.2013 / 18:36

Tags