를 사용하여 다음 패치 파일을 만든 diff -u file1 file2 | file.patch
다음 ---
줄을 편집하고 경로를 변경했습니다.
+++ ~/.config/openbox/menu.xml 2016-07-28 21:21:55.683952870 +0200
@@ -5,7 +5,7 @@
<item label="Terminal"><action name="Execute"><execute>lxterminal</execute></action></item>
<item label="Browser"><action name="Execute"><execute>firefox</execute></action></item>
<item label="File Manager"><action name="Execute"><execute>spacefm</execute></action></item>
-<item label="Editor"><action name="Execute"><execute>geany</execute></action></item>
+<item label="Editor"><action name="Execute"><execute>gksu geany</execute></action></item>
<separator/>
<menu id="applications" label="Applications" execute="xdg_menu --format openbox3-pipe --root-menu /etc/xdg/menus/arch-applications.menu" />
+++ /usr/share/applications/geany.desktop.bak 2016-07-29 22:43:43.483359679 +0200
@@ -130,7 +130,7 @@
Comment[vi]=Một IDE nhanh và nhẹ nhàng dùng GTK+
Comment[zh_CN]=GTK+ 编写的轻快的 IDE
Comment[zh_TW]=一個快速且輕巧的 GTK+ 整合開發環境
-Exec=geany %F
+Exec=gksu geany %F
Icon=geany
Terminal=false
Categories=GTK;Development;IDE;
다음 명령을 사용하여 이 패치를 실행해 보았습니다.
sudo patch -d / -p0 < ArkOS_Dev_Openbox.patch
물결표로 인해 첫 번째 파일을 찾을 수 없습니다. 또한 $HOME을 사용해 보았지만 소용이 없었습니다.
소프트웨어 패키지가 아닌 데스크톱 환경 등 적절하지 않다고 생각되는 방식으로 패치를 사용하려는 것 같습니다.
그래서 제 질문은, 패치를 이렇게 사용해도 될까요?입니다. 패치를 이렇게 사용해야 하나요? 그렇다면 어떨까요? 그렇지 않다면 대신 무엇을 사용해야 합니까?
답변1
빠른 확인원천예를 들어, GNU 패치를 표시해도 물결표가 홈 디렉토리로 확장되지 않습니다. 아마도 다른 구현에서는 이 작업을 수행하지 않을 것입니다.아마도일부 비공개 소스 Unix 버전 - GNU 패치(Larry Wall의 원래 버전에서 발전)를 기반으로 한 초기 버전입니다.
sed 스크립트를 통해 이를 처리할 수 있습니다. 예를 들면 다음과 같습니다.
sed -e "s,~/,$HOME/," ArkOS_Dev_Openbox.patch | sudo patch -d / -p0
추가 자료: