rsync
interpretiert Doppelpunkte in Dateinamen als Hinweis darauf, dass davor ein Remote-Computername steht. Wenn Sie versuchen, eine Datei mit einem Doppelpunkt im Namen per rsync zu synchronisieren, wird rsync in der Regel verwirrt und erzeugt Fehler wie
The source and destination cannot both be remote.
rsync error: syntax or usage error (code 1) at main.c(1166) [Receiver=3.0.9]
oder
Unexpected remote arg: 02\:12\:43.481000"
rsync error: syntax or usage error (code 1) at main.c(1232) [sender=3.0.9]
(Beachten Sie, dass mein Anwendungsfall eine Reihe von Dateien mit Daten in ihren Namen ist)
Wie kann ich rsync verwenden, um selektiv Dateien mit Platzhaltern zu senden? So etwas wie:
rsync -avz my_special_files* othermachine:/other/path/
Antwort1
Führen Sie dies vom übergeordneten Verzeichnis aus durch:
rsync -avz parent_directory/my_special_files* othermachine:/other/path/
und es funktioniert (zumindest unter Ubuntu 12.04 mit Rsync 3.09, Protokollversion 30).
Der Grund? Es hat etwas mit der Logik zu tun, die rsync verwendet, um Hosts zu erkennen. Schrägstriche, denen Wörter vorangestellt sind, werden anscheinend nicht als Hosts betrachtet. Seltsamerweise find
funktionierte es trotzdem nicht, als ich verwendete, sodass allen Namen "./" vorangestellt war.
Es gibt einige Diskussionen zu diesem Thema.zum Beispiel das, aber sie sprechen nicht über die Verwendung von Platzhaltern und dergleichen. Sie haben mich jedoch dazu inspiriert, das auszuprobieren, was am Ende funktioniert hat.