it-swarm-es.com

¿Línea de comando recursiva / copia de directorio profunda en Linux?

¿Cuál es una buena forma general de hacer una copia de directorio recursiva/profunda en Linux que funcione en la mayoría de los casos? He usado cosas simples como cp -R así como los encantamientos cpio bastante elaborados. ¿Hay fortalezas o debilidades significativas que te hagan preferir una sobre la otra? ¿Cuál usas con más frecuencia?

13
Greg Mattes
NAME
cp - copy files and directories

-a, --archive
   same as -dpR

-d     same as --no-dereference --preserve=links
-p     same as --preserve=mode,ownership,timestamps
-R, -r, --recursive
    copy directories recursively

Entonces, en respuesta a tu pregunta:

cp -a /foo /bar

Copie todo de forma recursiva desde el directorio/foo al directorio/barra mientras conserva los enlaces simbólicos y el 'modo' 'propiedad' y 'marcas de tiempo' del archivo/directorio.

29
Gareth

Utilizo un comando como "cd $ srcdir; tar -c. | Tar -C $ destdir -x" con mayor frecuencia. Pero también uso rsync -a $ src $ dst.

La mayor fortaleza de la solución tar es que es lo que tuve que usar en un sistema hace muchos años que no tenía cpio, rsync o un cp que se copiaría recursivamente. El alquitrán está prácticamente en todas partes. Está atascado en mi cabeza porque lo usé mucho, probablemente hay formas más elegantes. Siempre parece hacer el trabajo correctamente, por lo que nunca he buscado mucho para encontrar un reemplazo.

6
Zoredache

Eche un vistazo a rsync ... Me gusta porque copia menos datos al mantener dos directorios actualizados ... también puede funcionar de forma remota. En su forma más simple, rsync -a/src/dest

6
trent

rsync es una gran herramienta. Es la navaja suiza de transferencia de datos. Es una herramienta tan simple y poderosa. Una vez que comienzas a usarlo, te enganchas.

0
Rory