
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 dotglob
antes.
Respuesta2
Para obtener una copia idéntica local o remota, rsync
preferirí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 A
y su contenido a B
usar:
rsync -va test/A test/B
para copiar el contenido del directorio A
(incluidos los archivos ocultos) para B
usar:
rsync -va test/A/ test/B
si B no existe se crea