Quiero copiar unos 200 directorios y subdirectorios de una ubicación a otra, pero no quiero copiar los miles de archivos dentro de esos directorios. Estoy en Linux
Nota: no tengo suficiente espacio para copiar todo y luego eliminar todos los archivos.
linux
command-line-interface
rsync
copy
Kyle West
fuente
fuente

rsync -a --include='*/' --exclude='*' ${source} ${destination}.fuente
Otro enfoque es con find y mkdir :
Solo asegúrese de que TARGET ya exista o use la opción -p de mkdir.
fuente
También puedes hacer:
El poder de la simplicidad;)
fuente
Del mismo modo, usando (GNU) tar:
Realmente no necesita el
-print0en la línea de comando find o-0en la línea de comando rsync a menos que tenga nombres de archivo que contengan caracteres de nueva línea (lo cual es posible pero altamente improbable). Tar (y rsync, y cpio) leen los nombres de archivo línea por línea; el uso de un terminador NULL es principalmente útil conxargs, que normalmente lee nombres de archivos separados por espacios en blanco (y, por lo tanto, no maneja archivos / directorios con espacios en sus nombres sin ellos-0).fuente
fuente
Copiaría todos los archivos con enlaces duros. Misma estructura, mismos permisos. (nota: enlaces duros, por lo que no se pierde almacenamiento).
fuente
ls -d * / @source: buscar. -type d -print0> dirs.txt @destination: xargs -0 mkdir -p
Esto hará que ambos comandos usen nulos como separadores en lugar de espacios en blanco. Tenga en cuenta que el orden de -type d y -print0 es importante!
fuente
@sourcey@destinationson indicaciones para el lector, pero aun así esto no puede funcionar.