¿Cómo copio un árbol de directorios pero no los archivos en Linux?


17

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.

Respuestas:




5

Otro enfoque es con find y mkdir :

find SOURCE -type d -exec mkdir TARGET/{} \;

Solo asegúrese de que TARGET ya exista o use la opción -p de mkdir.


3

También puedes hacer:

find inputdir -type d | cpio -pdumv destdir

El poder de la simplicidad;)


1

Del mismo modo, usando (GNU) tar:

find some/dir -type d -print |
tar --no-recursion -T- -c -p -f- |
(cd another/dir && tar -x -p -f-)

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 con xargs, 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).



-1
cp -al 

Copiaría todos los archivos con enlaces duros. Misma estructura, mismos permisos. (nota: enlaces duros, por lo que no se pierde almacenamiento).


No es posible crear enlaces duros a través de los límites del sistema de archivos
MountainX-for-Monica

Es cierto, pero no se dijo que estaba en el sistema de archivos ...
SvennD

-1

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!


Esto no está claro y parece incorrecto. Parece que el @sourcey @destinationson indicaciones para el lector, pero aun así esto no puede funcionar.
Ley29
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.