Die Anwendung der patch-Befehl verwenden von Dateien in verschiedenen Verzeichnissen unter Linux
Ich bin versucht, einen patch mit 2 Dateien in unterschiedlichen Verzeichnissen. Die Ausgabe-Datei sollte in einem anderen Verzeichnis zu. Die erste Datei ist in /var/local/documents/document.xml und die patch-Datei befindet sich im /var/local/patches/patch.diff und ich will die output-Datei erstellt werden soll, in /var/local/final/final.xml.
Wenn die Dateien sich im gleichen Verzeichnis befindet, funktioniert dieser Befehl:
patch document.xml -i patch.diff -o final.xml
Aber, wenn Sie sind in getrennte Verzeichnisse und ich versuchen, den folgenden Befehl verwenden:
patch
/var/local/documents/document.xml -ich
/var/local/patches/patch.diff -o
/var/local/final/final.xml
Bekomme ich die folgende Fehlermeldung:
(Stripping trailing CRs from patch.)
patching file {file}
Hunk#1 FAILED at 20.
1 out of 1 hunk FAILED -- saving rejects to file {file}
Habe ich irgendwo gelesen, dass ich verwenden sollte,- d und -p, um korrekt zu arbeiten mit Verzeichnissen, aber ich habe keine Ahnung wie ich das machen soll...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, es ist -p switch (in deinem Fall sollte es strip 2 Einträge von patch-Pfad):
/var/local/upload/example_word/word
es wärepatch -o final.xml -p 4 document.xml < /var/local/out/upload/patch.patch
; [var] + [local] + [out] + [upload] == 4, daher-p 4
patch -o final.xml -p 5 document.xml < ../../../out/upload/patch.patch
([..] + [..] + [..] + [aus] + [upload] == 5) mit relativen Pfaden./var/local/upload/example_word/word
d.h.cd
auf dieses Verzeichnis bevor Sie den patch.patch -p 4 document.xml < /var/local/out/upload/patch.patch
siehe mein Kommentar auf das zählenp
Wert.Versuchen Sie dies: