2010-12-22 64 views

回答

16

這就是發球什麼:

command | tee file1 file2 file3 > file4 

發球也輸出到標準輸出,所以你可能想要麼把一個文件重定向後(如上圖所示),或發送到標準輸出/dev/null

對於您的情況:

echo "" | tee /home/jem/rep_0[1-3]/logs/SystemOut.log >/dev/null 
0

號怎麼樣使用tee兩次?

echo "Your text" | tee file1 | tee file2 > file3 
+0

謝謝。我忽略了指定我想使用通配符文件引用。 – Synesso 2010-12-22 01:05:23

+0

然後看勞倫斯的答案。 – Robert 2010-12-22 01:08:37

+1

您可以爲`tee`指定多個參數。你不需要運行兩次。 – 2010-12-22 01:08:59

0

管的「三通」命令轉移到一個文件和性病的,梯級的發球命令

5

可以使用tee,從標準輸入讀取和寫入到標準輸出和文件做到這一點。由於tee也輸出到標準輸出,我選擇將它的輸出指向/dev/null。請注意,bash擴展與現有文件相匹配,因此在執行此命令之前,您嘗試寫入的文件必須存在才能使其工作。

$ echo "" | tee /home/jem/rep_0[1-3]/logs/SystemOut.log > /dev/null 

作爲一個側面說明,你傳遞給echo""是多餘的。

與您的問題沒有直接關係,但如果您不依賴bash擴展,則可以有多個管道。

$ echo hello > foo > bar > baz 
$ cat foo bar baz 
hello 
hello 
hello 
1

你可以這樣做:

echo "" | tee /home/jem/rep_0{1..3}/logs/SystemOut.log 

抑制輸出到標準輸出,這個命令添加結束上述:

> /dev/null 

在你的問題中echo命令(它不需要空引號)只是在文件中放入一個換行符。如果要創建空文件,請使用touch命令。

1

我有這個相同的問題,只是想添加通配符的例子,因爲它沒有被顯示。我想這就是你要找的東西:

echo "" | tee *.log