Rsync kopiert Verzeichnisinhalte, aber nicht das Verzeichnis selbst

118

Ich versuche, zwei Inhalte von Ordnern mit unterschiedlichen Namen zu synchronisieren:

rsync -av ~/foo [email protected]:/var/www/bar

Ich mag den Inhalt kopieren fooin baran Remote - Host, aber nicht das Verzeichnis fooselbst. Ich habe so etwas versucht foo/*, aber rsync unterstützt das nicht.

rsync erstellt immer

/var/www/bar/foo
Tombart
quelle
18
Lassen Sie einfach den nachgestellten Schrägstrich ausreichen
Exussum

Antworten:

189

Versuchen rsync -av ~/foo/ [email protected]:/var/www/bar/

Protostom
quelle
37
Dieses Verhalten ist im Vergleich zu mvoder seltsam cp.
Zeekvfu
Scheint seltsam und inkonsistent, um den abschließenden Schrägstrich nur für diesen bestimmten Befehl relevant zu machen. Ich frage mich, warum es nicht geändert wurde.
Luke Davis
39
Für den Fall, dass sich jemand gefragt hat, warum dies funktioniert: Es ist das Nachlaufen /nach dem Verzeichnisnamen.
Etienne Bruines
30

Es ist einfach,

rsync /var/www/ /home/var- kopiert den Inhalt von / var / www /, jedoch nicht den Ordner www .

rsync /var/www /home/var- kopiert den Ordner www zusammen mit seinem gesamten Inhalt.

Das "/" macht den Unterschied.

Marcelo Guedes
quelle
6
Dies sollte die akzeptierte Antwort sein, die den Unterschied wirklich erklärt
edi9999
29

Nicht nur in Bezug auf rsync, sondern wenn Sie nach Beispielen für die Verwendung eines GNU / Linux-Befehls suchen, können Sie "eg" verwenden, das explizite Beispiele anzeigt. zB finden Sie hier Anweisungen zur Installation: https://github.com/srsudar/eg

Das Ergebnis für eg rsyncist wie folgt

# 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
Olivier
quelle
0

Navigieren Sie in das Verzeichnis, über das Sie kopieren möchten.

cd ~/foo 

Führen Sie Folgendes aus:

rsync -avz . [email protected]:/var/www/bar
Dan612
quelle