GNU/Linux >> Linux Esercitazione >  >> Linux

Copia di file ricorsiva e senza sovrascrittura?

Potresti usare rsync (esegue anche la copia locale)

rsync -r --ignore-existing --include=*/ --include=*.js --exclude=* source/ destination
  • -r per ricorrere nelle directory,
  • --ignore-existing per ignorare i file esistenti nella destinazione,
  • il include e exclude filtri significano:includono tutte le directory, includono tutti i file *.js, escludono il resto; il primo include è necessario, altrimenti l'esclusione finale escluderà anche le directory prima che il loro contenuto venga scansionato.

Infine, puoi aggiungere un -P se vuoi vedere i progressi, un --list-only se vuoi vedere cosa copierebbe senza effettivamente copiare, e un -t se vuoi conservare i timestamp.

Questo non è correlato, ma ho imparato il comando rsync di recente, quando ho spostato 15 anni di documenti da una partizione all'altra. Fiducioso che i miei file fossero lì, ho quindi cancellato la vecchia partizione e inserito altre cose; Mi sono reso conto in seguito di aver perso tutti i timestamp e ho scoperto il flag -t. Volevo solo condividere la mia angoscia :'(


Ciò è ottenibile anche utilizzando cp. Vedi qui:

sudo cp -vnpr /xxx/* /yyy

xxx =fonte

yyy =destinazione

v =prolisso

n =no clobber (nessuna sovrascrittura)

p =conserva i permessi

r =ricorsivo


Guardando le pagine man sembra che tu voglia il -n opzione.

-n, --no-clobber
   do not overwrite an existing file (overrides the previous -i option)

Linux
  1. Guida di Ansible:gestisci i file utilizzando Ansible

  2. Statistiche ricorsive sui tipi di file nella directory?

  3. Includi file aggiuntivi in ​​.bashrc

  4. Copia n byte di dati x nel file

  5. Come includere un file in uno script di shell bash

Copiare file in Linux

Come copiare un file in più directory in Linux

Comando Cp in Linux (copia file)

File di copia Linux - CP Linux semplificato!

Come copiare un file in File Manager

Come copiare un file in modo transazionale?