Es ist lustig, es gibt viele Möglichkeiten, wie Linux-Befehlszeilentools den Windows-Tools weit überlegen sind, aber eine Sache, für die ich kein Äquivalent gefunden habe, ist Robocopy . Robocopy ist viel vielseitiger als cp
, und ich kann nicht herausfinden, wie ich mit Linux-Tools machen soll, was ich will.
Ein spezieller Anwendungsfall ist, dass ich zwei Verzeichnisse mit zumeist ähnlichen Dateien habe, aber eines neuere Quelldateien und eines Inhaltsdateien, die das andere Verzeichnis nicht hat, und möglicherweise neuere Quelldateien (für eine Website). Ich möchte die Dateien aus dem letzteren Verzeichnis in das erstere kopieren, neue Inhaltsdateien und dergleichen hinzufügen, aber neuere Dateien im Zielverzeichnis nicht überschreiben.
Ich habe versucht, eine halbe Stunde lang herauszufinden, wie das unter Linux geht, und dann festgestellt, dass ich wahrscheinlich Bash-Skripte lernen oder etwas tun muss, was ich wollte. Ich hatte auch einige andere Anforderungen. Ich habe im Grunde genommen eine Python (Django) -Website von einem SVN-Repository in ein Git-Repository konvertiert und wollte sicherstellen, dass keine nicht festgeschriebenen Änderungen in SVN vorgenommen wurden. Ich wollte jedoch die .svn
Verzeichnisse und die .pyc
kompilierten Python-Dateien bedingt ausschließen . Der folgende Robocopy-Befehl macht genau das, was ich will:
robocopy source destination /XO /E /XD .svn /XF *.pyc
Gibt es eine Entsprechung zu Robocopy unter Linux? Ich habe rsync
kurz nachgeschaut , aber es schien, als müsste ich einen Rsync-Server einrichten, bevor ich versuche, die Ordner zu synchronisieren.
Antworten:
Es klingt so, als ob Rsync definitiv das ist, wonach Sie suchen. Sie müssen keinen 'rsync-Server' einrichten, um Dateien von einem Computer auf einen anderen zu kopieren. Rsync unterstützt das Kopieren von Dateien über SFTP (SSH File Transfer), das die meisten Linux-Boxen bereits aktiviert haben (wenn nicht manuell deaktiviert).
Weitere Informationen finden Sie unter Lifehackers Mirror-Dateien systemübergreifend mit rsync :
quelle
scp
ähnliche Syntax für die Übertragung über ssh verwenden? Eigentlich habe ich versucht, Dateien auf einen Computer zu übertragen, aber das ist gut zu wissen.rsync kopiert Dateien von einem Verzeichnis in ein anderes Verzeichnis auf demselben Computer wie robocopy. Hier ist der Befehl rsync, der Ihrem Befehl robocopy entspricht:
Dadurch wird die Quelle rekursiv in das Ziel kopiert und ältere Dateien sowie die Verzeichnisse / Dateien '.svn' und '* .pyc' ausgeschlossen.
quelle