Ich versuche, den Inhalt einer Reihe von Verzeichnissen nicht rekursiv auf ein anderes Remote-System zu kopieren.
/dirA/dir1/file
/dirA/dir2/file
/dirA/dir3/file
dir1, dir2 und dir3 enthalten viele Verzeichnisse, die ich nicht kopieren möchte. Kopieren Sie auf dem Remote-Host nach / dirB und behalten Sie dabei die gleiche Verzeichnisstruktur bei.
Ich habe es versucht:
rsync /dirA/*/ host:/dirB/
rsync /dirA/ host:/dirB/
Aber sie machen nicht was ich will.
-f '- /*/'
nur auf Dateien der obersten Ebene beschränken. Ich musste auch angeben-f '- .*'
, um Punktdateien auszuschließen, da ich ein Home-Verzeichnis synchronisierte.Die obige Lösung (von PleaseStand) hat aus irgendeinem Grund bei mir nicht funktioniert. Dies funktionierte jedoch:
rsync -avc --no-r ./source/* ./destination/
Es gibt auch diese Alternative:
rsync -avc --exclude "/" ./source/ ./destination/
quelle
Eine der "Funktionen" von rsync ist das Analysieren von Verzeichnissen.
rsync /dirA/ host:/dirB/
undrsync /dirA host:/dirB
sollte theoretisch gleichwertig sein.Um die Rekursivität nicht zu fördern, möchten Sie vermeiden
-r
,-a
was neben anderen Dingen impliziert-r
.Ich bin noch nicht ganz mit der Forschung fertig, aber dies ist meine erste Antwort.
quelle