$ echo "" > /home/jem/rep_0[1-3]/logs/SystemOut.log
bash: /home/jem/rep_0[1-3]/logs/SystemOut.log: ambiguous redirect
我可以一次重定向到多個文件嗎?Bash模棱兩可重定向 - 重定向到多個文件
編輯:允許使用模糊文件引用的任何答案?
$ echo "" > /home/jem/rep_0[1-3]/logs/SystemOut.log
bash: /home/jem/rep_0[1-3]/logs/SystemOut.log: ambiguous redirect
我可以一次重定向到多個文件嗎?Bash模棱兩可重定向 - 重定向到多個文件
編輯:允許使用模糊文件引用的任何答案?
這就是發球什麼:
command | tee file1 file2 file3 > file4
發球也輸出到標準輸出,所以你可能想要麼把一個文件重定向後(如上圖所示),或發送到標準輸出/dev/null
。
對於您的情況:
echo "" | tee /home/jem/rep_0[1-3]/logs/SystemOut.log >/dev/null
號怎麼樣使用tee
兩次?
echo "Your text" | tee file1 | tee file2 > file3
管的「三通」命令轉移到一個文件和性病的,梯級的發球命令
可以使用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
你可以這樣做:
echo "" | tee /home/jem/rep_0{1..3}/logs/SystemOut.log
抑制輸出到標準輸出,這個命令添加結束上述:
> /dev/null
在你的問題中echo
命令(它不需要空引號)只是在文件中放入一個換行符。如果要創建空文件,請使用touch
命令。
我有這個相同的問題,只是想添加通配符的例子,因爲它沒有被顯示。我想這就是你要找的東西:
echo "" | tee *.log
謝謝。我忽略了指定我想使用通配符文件引用。 – Synesso 2010-12-22 01:05:23
然後看勞倫斯的答案。 – Robert 2010-12-22 01:08:37
您可以爲`tee`指定多個參數。你不需要運行兩次。 – 2010-12-22 01:08:59