Linux

在 Linux 中執行 find 時如何跳過“權限被拒絕”錯誤?

  • November 23, 2012

可能重複:

如何從查找程序中刪除“權限被拒絕”列印輸出語句?

當我在 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/shshell。

根據tcsh/csh你會使用

find / -name art |& grep ....

引用自:https://unix.stackexchange.com/questions/42841