Rsync elimina i file e le cartelle di destinazione per impostazione predefinita?


44

File

Supponiamo che /foo/srccontenga solo A.ce che /foo/destcontenga sia A.ce B.c. E supponiamo che io esegua il seguente comando:

rsync /foo/src/ /foo/dest

Sarà rsynccancellare B.c?

Cartelle

Supponiamo ora che /foo/srccontenga la directory Acon alcuni file al suo interno e che /foo/destcontenga entrambe le directory Ae B, ognuna con alcuni file al suo interno. E supponiamo di eseguire il seguente comando (l'opzione -a include -r, ricorsivo):

rsync -a /foo/src/ /foo/dest

Sarà rsynccancellare Be il suo contenuto?


È necessario l' --deleteinterruttore.
fideli,

Risposte:


51

Per impostazione predefinita, rsync non elimina i file ma ciò dipende dalle opzioni di comando specificate. È possibile utilizzare quanto segue se si desidera eliminare i file:

  • −−del (alias per −−delete − during)
  • -Delete (elimina i file estranei dalle directory dir)
  • −−delete − before (il destinatario elimina prima di xfer [default])
  • −−delete − during (il ricevitore elimina durante xfer, non prima)
  • -Delete-after (il destinatario cancella dopo xfer, non prima)
  • −−delete − excluded (elimina anche i file esclusi dalle directory dir)
  • −−max − delete = NUM ​​(non cancellare più di NUM file)

Dato che hai espressamente chiamato l' opzione -a , ecco cosa dice la pagina man

−a, −−archive >

Ciò equivale a −rlptgoD . È un modo rapido per dire che vuoi la ricorsione e vuoi preservare quasi tutto (con -H come una notevole omissione). L'unica eccezione alla precedente equivalenza è quando viene specificato −−files − from , nel qual caso −r non è implicito.

Notare che −a non conserva i collegamenti fisici , poiché trovare file con collegamenti multipli è costoso. È necessario specificare separatamente −H .

Quindi sembra che la risposta alla tua domanda sia NO, non verrà cancellata dai tuoi esempi.
HTH

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.