Duplicando um esqueleto de diretório - apenas pastas e nomes de arquivos, mas não o conteúdo dos arquivos

Duplicando um esqueleto de diretório - apenas pastas e nomes de arquivos, mas não o conteúdo dos arquivos

Quero duplicar uma pasta e todas as subpastas, mas não quero duplicar o conteúdo dos arquivos deste diretório.

Digamos que a pasta que desejo duplicar seja

Folder0
     Folder00
          File000.x      1GB
          File001.x      500MB
     Folder01
          File010.x      600MB

Quero criar uma duplicata que seja como

Folder0
     Folder00
          File000.x      1KB
          File001.x      1KB
     Folder01
          File010.x      1KB

Como você me aconselharia a fazer isso?

Alternativamente, posso primeiro criar uma duplicata regular da pasta e depois limpar o conteúdo de cada arquivo.

Responder1

Você pode usar encontrar:

find src/ -type d -exec mkdir -p dest/{} \; \
       -o -type f -exec touch dest/{} \;

Encontre o diretório ( -d) em ( src/) e crie ( mkdir -p) eles em dest/ou ( -o) encontre os arquivos ( -f) e toucheles em dest/.

Isso resultará em:

dest/src/<file-structre>

Você pode usar mvde forma criativa para resolver esse problema.


Outra solução (parcial) pode ser alcançada com rsync:

rsync -a --filter="-! */" sorce_dir/ target_dir/

O truque aqui é a --filter=RULEopção que exclui ( -) tudo que não é ( !) um diretório ( */)

informação relacionada