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