Duplicar un esqueleto de directorio: solo carpetas y nombres de archivos, pero no el contenido de los archivos

Duplicar un esqueleto de directorio: solo carpetas y nombres de archivos, pero no el contenido de los archivos

Quiero duplicar una carpeta y todas las subcarpetas, pero no quiero duplicar el contenido de los archivos de este directorio.

Digamos que la carpeta que quiero duplicar es

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

Quiero crear un duplicado que sea como

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

¿Cómo me aconsejarías que hiciera esto?

Alternativamente, puedo crear primero un duplicado normal de la carpeta y luego borrar el contenido de cada archivo.

Respuesta1

Puedes usar buscar:

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

Busque el directorio ( -d) en ( src/) y créelos ( mkdir -p) en dest/o ( -o) busque archivos ( -f) y touchellos en dest/.

Esto resultará en:

dest/src/<file-structre>

Puede utilizar mvde forma creativa para resolver este problema.


Se puede lograr otra solución (parcial) con rsync:

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

El truco aquí es la --filter=RULEopción que excluye ( -) todo lo que no es ( !) un directorio ( */)

información relacionada