
我找不到重定向 NAS 上錯誤的方法。
shell 是/bin/sh
,當我使用時,> mylogfile.log 2>&1
我仍然在終端上看到錯誤列印。具體命令是
find /volume1/ | grep "totoro" > ~/totoro.log 2>&1
我看到錯誤find
。有什麼辦法可以使重定向工作嗎?如何將find
錯誤寫入日誌檔案?
答案1
find /volume1/ | grep "totoro" > ~/totoro.log 2>&1
2>&1
只影響你grep
,不影響find
。在下面的命令中,第一個2>&1
影響find
:
find /volume1/ 2>&1 | grep "totoro" > ~/totoro.log 2>&1 # probably wrong
但這會將 stderr 和 stdout 從 發送find
到grep
。您可能不想grep
從find
.我猜你想捕獲整個組合命令的標準輸出和標準錯誤。如果是這樣,請在顯式子 shell 中執行該命令並重定向其輸出和錯誤流:
(find /volume1/ 2>&1 | grep "totoro") > ~/totoro.log 2>&1
答案2
請參閱“tee”命令。它從標準輸入讀取並寫入標準輸出和檔案。這裡很有幫助。