Utilizzare rsync per copiare tutti i file ad eccezione di alcuni nomi di file con una determinata estensione


28

Ho due schede flash della stessa dimensione e voglio copiare il contenuto dell'uno in base alle seguenti regole:

  1. Voglio tutte le directory e le sottodirectory in atto
  2. Voglio escludere file di tipo .FOO, .BAR e .ZIM (tutti gli altri file vengono copiati)
  3. Bonus: Sarebbe bello se emette i nomi dei file mentre vengono copiati considerando che copieranno ~ 8 GB di informazioni

Questo potrebbe essere fatto con "trova" in qualche modo?

Risposte:


41

Ciò sarebbe notevolmente più semplice usando rsync con il suo --excludeswitch.

rsync -av --exclude='*.FOO' --exclude='*.BAR' --exclude='*.ZIM' /source /dest

Lo -vswitch fornirà un output dettagliato su quali file vengono sincronizzati.


Piccolo follow-up qui: la copia è finita e / src / * è ora in / dest / src / * Come usare rsync per ottenere / src / * in / dest / *?
macek,

Prova/source/ /dest
John T,

Questo non funziona Sto ancora vedendo i file * .FOO da copiare.
Jake,

Si specifica come si dovrebbe dare il percorso per --exclude. Se hai problemi, controlla questa risposta .
totymedli,

0

Se si dispone di un numero elevato di estensioni da escludere, è possibile creare un file e scrivere tutte le estensioni o i file da escludere e utilizzare una sola opzione di esclusione per renderlo semplice.

rsync -ravz --exclude = '. / abc, txt' / source / dest

È sempre bene usare z per la compressione e l'opzione r se si deve copiare in modo ricorsivo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.