избегать запрещенного спама при использовании команды find

21

Я часто пытаюсь найти файлы со следующим синтаксисом:

find . -name "filetofind"

Однако обычно это приводит к появлению большого количества строк или сообщений об ошибках (Permission denied) о папках, в которых было отказано в разрешении. Есть ли другой способ избежать этого спама, кроме использования sudo или расширенного поиска ошибок?

user40167
источник
Также связанные: Ubuntu grep, find и т. Д.: «Отказано в
доступе
Связанный: stackoverflow.com/a/25234419/54964
Лео Леопольд Герц 준영

Ответы:

27

Пытаться

find . -name "filetofind" 2>/dev/null

Это перенаправит stderrпоток вывода, который используется для сообщения обо всех ошибках, включая ошибку «Отказано в доступе», на нулевое устройство.

whitequark
источник
Спасибо, работает как шарм :) Я полагаю, что нет простого способа сделать его опцией по умолчанию без создания псевдонима, делающего то же самое.
user40167
Нет, это дизайн оболочки.
whitequark
3

Если вы хотите увидеть другие ошибки и у вас нет файлов с именем «отказано в разрешении», это будет работать «лучше».

find . -name "filetofind" 2>&1 | grep -v 'permission denied' 

Перенаправление вывода в grep с опцией инверсии.

Hogan
источник