Copia di un file solo quando è più recente della destinazione


36

Come copio un file in Linux solo quando il file da copiare è più recente della versione di destinazione?

Se il file nella destinazione è più recente, voglio che la copia del file non vada avanti.

Risposte:



17

Usa rsync

rsync --progress -r -u /from/one/* /to/another/directory

3
Solo per completezza: -rsignifica operazione ricorsiva in sottodirectory e -umantenere i file più recenti a destinazione (= aggiornamento). --progressmostra le informazioni sullo stato di avanzamento durante il funzionamento.
Jörg Gottschlich,

6

Non stai dicendo quale shell stai usando, quindi suppongo ksh:

if [[ file1 -nt file2 ]]; then cp file1 file2; fi

Bash non è più comune?
Rob,

1
@Rob, sì. Questo funziona anche in bash, ovviamente. Non avevo a portata di mano bash (o qualsiasi box Linux standard) quando l'ho scritto.
Kusalananda,

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.