¿Cómo copiar en bash todos los directorios y archivos recursivos?

137

Tengo script:

find ./SourceFolder/ -maxdepth 4 -exec cp -R '{}' ./DestFolder/ \;

SourceDir contiene también subcarpetas.

Problema que DestFolderno solo en todos los árboles, sino en el nivel superior de todos los demás niveles y archivos.

Como arreglar ?

usuario710818
fuente
Lo sentimos, olvidé agregar -name "* .txt"
user710818

Respuestas:

289
cp -r ./SourceFolder ./DestFolder
lanzz
fuente
66
Entonces, para aclarar, la opción capital -R copiará el directorio raíz nuevamente; La opción small -r mantiene las rutas raíz iguales.
AnneTheAgile
8
@AnneTheAgile: de mis pruebas en este momento y de acuerdo con las páginas de manual, -r y -R no difieren.
aaaaaa
@aaaaaa, ty! ¿en qué sistema operativo / versión estás? Más tarde descubrí que parece que los comandos bash pueden diferir sutilmente entre los sistemas operativos.
AnneTheAgile
2
cpno es un comando bash sino un ejecutable separado, por lo que es específico del sistema. Los verdaderos comandos bash, por otro lado, son los mismos en todos los sistemas operativos.
lanzz
52

código para una copia simple.

cp -r ./SourceFolder ./DestFolder

código para una copia con resultado exitoso

cp -rv ./SourceFolder ./DestFolder

código para Forzosamente si la fuente contiene algún archivo de solo lectura, también copiará

cp -rf ./SourceFolder ./DestFolder

para detalles ayuda

cp --help
usuario3708054
fuente