Bash
如何防止“更新檔”在末尾創建帶有波浪號的備份文件?
我正在跑步
diff
,patch
就像這樣:diff --unified --ignore-space-change old.txt new.txt > changed.patch patch --version-control=none third.txt changed.patch
--version-control=none
應該防止patch
創建文件(third.txt.orig
它確實如此)。但是,它會創建一個名為的文件
third.txt.~1~
。所有的帥哥都成功了,
SIMPLE_BACKUP_SUFFIX
環境變數為空。該
--posix
選項創建third.orig
文件。
third.rej
如果有問題,我不介意是否創建文件。我正在使用帶有 GNU 更新檔 2.7.6 的 Git Bash。
簡短:使用
--no-backup-if-mismatch
:通常,如果更新檔與原始輸入文件不完全匹配,更新檔**
patch -R
**會創建一個備份文件,因為在這種情況下,如果您使用 ’ ’ 撤消更新檔,則可能無法恢復原始數據(請參閱應用反向更新檔)。但是,當符合 POSIX 時,patch 預設不創建備份文件。請參閱更新檔和POSIX 標準。(
--backup
-b) 選項使更新檔生成備份文件,無論更新檔是否與原始輸入匹配。該**--backup-if-mismatch
選項導致更新檔為不匹配的文件創建備份文件;這是不符合 POSIX 時的預設值。該--no-backup-if-mismatch
**選項導致更新檔不創建備份文件,即使是不匹配的更新檔;這是符合 POSIX 時的預設值。(“符合”需要一些解釋,這在 2018 年第 7 期 The Open Group Base Specifications 中並不明顯)。