Podrías usar rsync (también hace copia local)
rsync -r --ignore-existing --include=*/ --include=*.js --exclude=* source/ destination
-r
para recurrir a directorios,--ignore-existing
para ignorar los archivos existentes en el destino,- el
include
yexclude
los filtros significan:incluir todos los directorios, incluir todos los archivos *.js, excluir el resto; se necesita la primera inclusión; de lo contrario, la exclusión final también excluirá los directorios antes de escanear su contenido.
Finalmente, puedes agregar un -P
si quieres ver el progreso, un --list-only
si quiere ver lo que copiaría sin copiar realmente, y un -t
si desea conservar las marcas de tiempo.
Esto no está relacionado, pero aprendí el comando rsync recientemente, cuando moví 15 años de documentos de una partición a otra. Confiado en que mis archivos estaban allí, luego borré la partición anterior y puse algunas otras cosas allí; Más tarde me di cuenta de que había perdido todas las marcas de tiempo y descubrí el indicador -t. Solo quería compartir mi angustia :'(
Esto también se puede lograr usando cp. Ver aquí:
sudo cp -vnpr /xxx/* /yyy
xxx =fuente
yyy =destino
v =detallado
n =sin clobber (sin sobrescribir)
p =preservar permisos
r =recursivo
Al mirar las páginas del manual, parece que desea el -n
opción.
-n, --no-clobber
do not overwrite an existing file (overrides the previous -i option)