可能的重複:
如何從查找程式中刪除「權限被拒絕」的列印輸出語句?
當我在 Linux (SuSE) 中執行此命令時:
find / -name ant
我收到許多以下形式的錯誤訊息:
find: `/etc/cups/ssl': Permission denied
是否find
需要一個參數來跳過顯示這些錯誤並僅嘗試我有權訪問的文件?
答案1
您可以過濾掉發送至 的訊息stderr
。我更喜歡將他們重定向到stdout
這樣的狀態。
find / -name art 2>&1 | grep -v "Permission denied"
解釋:
簡而言之,所有常規輸出都轉到標準輸出 ( stdout
)。所有錯誤訊息都為標準錯誤 ( stderr
)。
grep
通常會尋找/列印指定的字串,然後-v
反轉它,因此它會尋找/列印每個字串不包含“權限被拒絕”。 find 命令的所有輸出,包括通常發送到stderr
(檔案描述符 2)的錯誤訊息,現在都會轉到stdout
(檔案描述符 1),然後由該命令過濾grep
。
這假設您正在使用bash/sh
shell。
在tcsh/csh
你會使用
find / -name art |& grep ....