Usando el comando cp en el shell de Linux, ¿cómo copio un directorio completo en otro directorio?

Usando el comando cp en el shell de Linux, ¿cómo copio un directorio completo en otro directorio?

Tengo un directorio, digamos, "trabajo": ~/work/ Este directorio tiene algunas subcarpetas (d1, d2...) y archivos en estas subcarpetas. Quiero hacer una copia de seguridad en la misma carpeta, entonces sería como: ~/backup/work/ Sin embargo, cuando uso cp -r ./work ./backup la carpeta "work" no se copia, solo sus subcarpetas (así que ahora es ~/backup/d1 ~/backup/d2...) ¿Alguna idea de cómo hacerlo funcionar? Soy bastante nuevo en Shell, así que me falta algo :)

Respuesta1

cp no creará directorios principales; cuando ve una ruta que no existe, asumirá que será el nuevo nombre del directorio que se está copiando.

Intente copiar en un directorio que ya exista: mkdir workprimero, luego cp -r work backup.

Respuesta2

Intentar

rsync -avz ./work ./backup

Respuesta3

cp -r ./work/ ./backup/

o

cp -r ./work ./backup/work

Respuesta4

Si estás en un sistema Linux:

cp -rT --parents work backup/work

información relacionada