Я новичок в unix. Я использую find, но получаю слишком много результатов, чтобы поместиться на моем экране, поскольку он перечисляет папки, в которых запрещены разрешения. Я пробовал подключать его к большему количеству каналов, но это, похоже, не имело никакого эффекта. Итак, у меня два вопроса:
Спасибо
чтобы подавить ошибки отказа в разрешении, добавьте 2>/dev/null
до конца твоего find
заявление
попробуйте (если вы используете sh, bash):
find . -name "foo" 2>&1 | more
Я не уверен, почему подключение к большему количеству не работает для вас. Но простое решение - перенаправить вывод в файл, а затем его страницу. Следующее перенаправит стандартный вывод в файл, а стандартная ошибка сохранит значение по умолчанию, которое должно отображать ошибку на экране:
find . -iname '*something*' > myfile.out
more myfile.out
Вам придется подождать, пока find завершится, чтобы увидеть все. Если вы хотите полностью избавиться от этих сообщений об ошибках и по-прежнему получать результаты без ошибок, перейдите в этот файл:
find . -iname '*something*' > myfile.out 2> /dev/null
Каждый раз, когда вы запускаете это, myfile.out будет перезаписываться. Это перенаправление является стандартным для оболочки и может использоваться с большинством команд. Вот небольшой учебник по перенаправлению, стоит изучить.
Другие примеры:
С участием 2>&1
, стандартная ошибка (stderr) перенаправляется на stdout, поэтому оба в конечном итоге попадают в большее число. С 2> / dev / null вы отправляете их на специальное устройство, которое по сути является черной дырой (также известной как битовое ведро). В * nix устройства представлены в виде файлов.