2012-02-15 15 views
5

Il flag Rsync -u impedisce la sovrascrittura dei file di destinazione modificati. Come posso ottenere un elenco di file che non sono stati inviati a causa di questo flag? Il flag -v mi consente di sapere quali file sono stati inviati , ma mi piacerebbe sapere quali non erano.Rsync: fornire un elenco di file non inviati

Grazie.

risposta

7

Dal rsync man page:

-i, --itemize-changes 

Richieste un semplice elenco dettagliato dei cambiamenti che si stanno fatti per ciascun file, comprese le modifiche degli attributi. Questo è esattamente lo stesso di specificare --out-format = '% i% n% L'. Se si ripete l'opzione, i file non modificati saranno anche uscita, ma solo se il ricevente rsync è almeno la versione 2.6.7 (si può usare -vv con vecchie versioni di rsync, ma che si accende anche l'output di altri messaggi dettagliati).

Nel mio test, l'opzione -ii non funziona con rsync 3.0.8, ma è -vv. Il tuo chilometraggio può variare.

Si potrebbe anche ottenere sostanzialmente le stesse informazioni invocando rsync con --dry-run e --existing nella direzione opposta. Così, se il trasferimento regolare si presentava così:

rsync --update --recursive local:/directory/ remote:/directory/ 

si usa:

rsync --dry-run --existing --recursive remote:/directory/ local:/directory/ 

ma -vv o -ii è più sicuro e meno soggetto a errori di interpretazione.

+0

Grazie, sembra che tu abbia coperto il problema da ogni angolazione! – dotancohen