$HOMEのパッチとシステムのパッチファイルを1つのコマンドとファイルとして取得できますか?

$HOMEのパッチとシステムのパッチファイルを1つのコマンドとファイルとして取得できますか?

を使用して次のパッチファイルを作成し、行を編集してdiff -u file1 file2 | file.patchパス---を変更しました。

ArkOS_Dev_Openbox.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

追加資料:

おすすめ記事