Rsync copia il contenuto della directory ma non la directory stessa


120

Sto cercando di sincronizzare due contenuti di cartelle con un nome diverso:

rsync -av ~/foo user@remote.com:/var/www/bar

Vorrei copiare il contenuto di fooin barun host remoto, ma non la directory foostessa. Ho provato qualcosa di simile foo/*, ma rsync non lo supporta.

rsync crea sempre

/var/www/bar/foo

18
basta lasciare la barra finale dovrebbe essere sufficiente
exussum

Risposte:


190

Provare rsync -av ~/foo/ user@remote.com:/var/www/bar/


37
Questo comportamento è strano, rispetto a mvo cp.
zeekvfu

Sembra strano e incoerente rendere la barra finale rilevante solo per questo particolare comando. Mi chiedo perché non sia stato cambiato.
Luke Davis

39
Nel caso qualcuno si stesse chiedendo perché funziona: è il finale /dopo il nome della directory.
Etienne Bruines

32

È semplice,

rsync /var/www/ /home/var- copia il contenuto di / var / www / ma non di www cartella stessa.

rsync /var/www /home/var- copia la cartella www insieme a tutto il suo contenuto.

La "/" fa la differenza.


6
Questa dovrebbe essere la risposta accettata che spiega davvero la differenza
edi9999

29

Non correlato solo a rsync, ma quando cerchi esempi su come usare un comando GNU / Linux, puoi usare "eg" che mostra esempi espliciti. ad esempio è disponibile qui, con le istruzioni su come installarlo: https://github.com/srsudar/eg

Il risultato per eg rsyncè il seguente

# rsync


copy the folder source_dir and its content into destination_dir

    rsync -av source_dir destination_dir


copy the contents of source_dir (trailing slash) into destination_dir

    rsync -av source_dir/ destination_dir

0

Naviga nella directory su cui desideri copiare, quindi:

cd ~/foo 

Esegui questo:

rsync -avz . user@remote.com:/var/www/bar
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.