Как убрать сообщения Permission denied при использовании find?

Когда использую команду find, то часто получаю сообщения Permission denied (Отказано в доступе) об отсутствии доступа к некоторым директориям и файлам. Особенно это мешает, когда ищу по всему диску:
find / -name myfile

В итоге получаю много лишних сообщений среди которых нужно еще выискивать найденные файлы:
find / -name "apache*"
find: `/etc/ssl/private': Отказано в доступе
/etc/apparmor.d/abstractions/apache2-common
find: `/etc/polkit-1/localauthority': Отказано в доступе
find: `/etc/cups/ssl': Отказано в доступе
find: `/sys/kernel/debug': Отказано в доступе
find: `/run/udisks2': Отказано в доступе
Данные сообщения появляются, когда алгоритм поиска натыкается на файлы, к которым у пользователя нет доступа.

Есть несколько способов убрать сообщения Permission denied. Наверное, самый простой — это перенаправлять все ошибки в /dev/null. Для этого в конце вашей команды просто дописываем: 2>/dev/null. Например:
find / -name "*.txt" 2>/dev/null

У этого способа есть и недостаток, так как вы не получите на экран сообщения об ошибках. Но для простого поиска данный метод подходит.

Смотрите также: Команда find: широкие возможности для поиска файлов в Linux.

Написать комментарий

Ваше имя:
Текст:
Вы не зарегистрированы: комментарий будет опубликован только после просмотра администратором сайта.