GNU/Linux >> Tutoriales Linux >  >> Linux

¿Copia de archivo recursiva, sin sobrescritura?

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 y exclude 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)

Linux
  1. Guía de Ansible:Administrar archivos usando Ansible

  2. ¿Estadísticas recursivas sobre tipos de archivos en el directorio?

  3. buscar y copiar archivos usando Bash

  4. Incluir archivos adicionales en .bashrc

  5. Cómo incluir un archivo en un script de shell bash

Copiar archivos en Linux

Cómo copiar un archivo a varios directorios en Linux

Comando Cp en Linux (Copiar archivos)

Archivo de copia de Linux:¡Linux CP simplificado!

Cómo copiar un archivo en el Administrador de archivos

¿Cómo copiar un archivo transaccionalmente?