Copie todos los archivos de una ubicación a otra en Linux, sin copiar el directorio en sí

Copie todos los archivos de una ubicación a otra en Linux, sin copiar el directorio en sí

Quiero copiar algunos o todos los archivos de un directorio test/A/a otro test/B/, pero sin copiar el directorio A.

Probé el comando cp -R test/A/ test/B, pero copia el directorio y los archivos también y se convierte en test/B/A/...

Respuesta1

Cuando especifica test/A/, le dice a Bash que copie el directorio.

Para copiar sólo el contenido de un directorio, utiliceel *globo:

cp -R test/A/* test/B

Aquí, *coincidirá con todos los archivos en A, excepto los ocultos que tienen el prefijo de un punto, por ejemplo .htaccess. Para incluirlos también con un *, llame shopt -s dotglobantes.

Respuesta2

Para obtener una copia idéntica local o remota, rsyncpreferiría cp. Esto le brinda un control mucho más preciso sobre lo que se debe copiar o incluso eliminar, ya sea en el origen o en el destino, si así lo desea. Y, por cierto, soluciona problemas con archivos ocultos (también conocidos como .*). El uso básico es tan simple como cp.

para copiar un directorio Ay su contenido a Busar:

rsync -va test/A test/B

para copiar el contenido del directorio A(incluidos los archivos ocultos) para Busar:

rsync -va test/A/ test/B

si B no existe se crea

información relacionada