2010-01-19 31 views
1

我想捉對標準輸出的bash patch的輸出,但是我收到一個錯誤:如何在標準輸出中使用'patch'命令?

patch -o- some/file 
patch: can't output patches to standard output 

我能在標準輸出上補丁的結果?

+0

你想要補丁*輸出*爲什麼? – 2010-01-19 10:19:47

+0

我正在寫某種CVS,需要在指定的時間內恢復文件狀態。因此,我需要爲當時存在的最後一個'diff'文件修補'關鍵幀'文件,這是因爲增量備份的規則。 – Enchantner 2010-01-19 11:20:00

+0

Bash沒有補丁命令。 – 2010-01-19 11:52:14

回答

5

有幾種方法可以做到這一點。

  1. 使用臨時文件收集補丁的文件,貓的臨時文件,然後刪除它。一個班輪將是:

    patch fileToPatch patch.diff -o temp.out;cat temp.out;rm temp.out 
    
  2. 直接輸出發送到/dev/tty

    patch fileToPatch patch.diff -o /dev/tty 
    
+0

鑑於'-o/dev/tty'外觀和似乎是多麼的乾淨,你有沒有理由使用多命令臨時文件方法?在某些情況下'/ dev/tty'是無法訪問的? – 2017-07-12 20:47:08

-1

您可以使用 「-o - 」 到輸出重定向明確到stdout:

patch fileToPatch patch.diff -o -

希望它有幫助

+0

這就是OP說的沒有用的。 – 2017-07-12 20:39:22

相關問題