Ich habe Verzeichnis a und Verzeichnis b. Sie sind groß. b ist fast identisch mit a. "fast" bedeutet, dass sich 4-5 Dateien unterscheiden, und ich weiß nicht, um welche es sich handelt. Ich möchte b über a kopieren, aber nur die Dateien, die sich unterscheiden. Ich bin in Bash.
(nein, ich kann a nicht einfach löschen und durch b ersetzen, weil 1) a versionskontrolliert ist 2) eine vollständige Kopie (oder ein MV) zu viel kosten würde. Ich möchte nur die Dateien kopieren, die sich unterscheiden.
linux
bash
cp
file-transfer
janesconference
quelle
quelle
rsync
eine Option?Antworten:
Sie können
rsync
dazu den Befehl verwenden, den ich verwendersync -tr "folder to copy from" "folder to copy to"
z.B
rsync -tr /home/me/stuff/* /home/me/otherstuff/
quelle
Es ist auch möglich, dies mit guten alten zu tun
cp
:Vielen Dank an srcspider für die Erinnerung
-T
!cp -ruT old-dir new-dir
quelle
Eine weitere gute Option ist Unison ( http://www.cis.upenn.edu/~bcpierce/unison/ ), insbesondere wenn es nicht wirklich eine "Quelle" und ein "Ziel" gibt. Jedes Verzeichnis ist ein Stammverzeichnis, und Unison synchronisiert sie und speichert Metadaten für zukünftige Synchronisierungen. Es bietet sowohl eine Befehlszeilen- als auch eine GUI-Option, die auch über cron einfach geplant werden kann.
Ich verwende es, um eine Sicherungskopie meiner Dropbox auf meiner lokalen NAS-Appliance zu erstellen, auf der kein Dropbox-Client ausgeführt werden kann.
quelle
Es KANN mit gutem alten CP gemacht werden, wenn auch mit einem etwas anderen Format als oben angegeben. So habe ich es gemacht:
quelle
Sie können die 2 Verzeichnisse unterscheiden.
diff -r dir1 dir2
Es zeigt Ihnen die Liste der Dateien, die verschieden sind
quelle