GNU/Linux >> Linux Esercitazione >  >> Linux

RSYNC non elimina le directory di origine

La manpage dice anche:

--remove-source-files   sender removes synchronized files (non-dirs)

Se vuoi rimuovere le directory vuote nella tua fonte, se ci sono ancora file rimasti, fai un:

find . -depth -type d -empty -delete

Se è solo una directory sorgente vuota, un rmdir <directory> sarà ovviamente sufficiente.


Il comportamento di --remove-source-files che osservi è esattamente quello specificato da man rsync :

--remove-file-sorgente

   This tells rsync to remove from the sending side the files (meaning non-directories) that are a part of the transfer and have been successfully duplicated on the receiving side.

Non esiste un comando specifico per rimuovere le directory, come mostrano chiaramente queste due discussioni in StackExchange e ServerFault. La soluzione suggerita è quella di emettere due comandi separati:

 rsync -av --ignore-existing --remove-source-files source/ destination/ && \
 rsync -av --delete `mktemp -d`/ source/ 

L'ultima parte del comando suggerito in questi due post,

 rmdir source/

che è necessario per rimuovere la directory di origine (ora svuotata) ha questo modulo in questi post perché gli OP e le risposte utilizzano rsync per spostare grandi quantità di file all'interno della stessa macchina. Nel tuo caso dovrai farlo manualmente.


Utilizzando "rm -rf " ha una race condition intrinseca, potresti in particolare eliminare i file che sono stati appena creati tra rsync e il rm invocazioni.

Preferisco usare:

rsync --remove-source-files -a server:incoming/ incoming/ &&

sshserver find incoming -type d -delete

Questo NON rimuoverà le directory se non sono vuote.


Linux
  1. Perché il completamento automatico non funziona quando si digita un nome di comando dopo "source"?

  2. Vsftpd non elenca il contenuto di una directory?

  3. Perché `esce &` non funziona?

  4. Linux:perché Rsync su Linux non conserva tutti i timestamp (ora di creazione)?

  5. Il comando du non analizza le directory nascoste

Come escludere file e directory con Rsync

Come rimuovere (eliminare) la directory in Linux

Come trovare ed eliminare directory vuote in Linux

La rete wireless non si riconnette automaticamente in KDE

Comando sorgente non trovato

il parvenu non vede il mio lavoro