Как отключить команду ls?

Предположим, что я рекурсивный ls

 $ ls -R 

в корневом каталоге.

Я получаю много сообщений, подобных этим –

 ls: cannot open directory ./var/lib/sendmail: Permission denied ls: cannot open directory ./var/lib/sudo: Permission denied ... 

Есть ли способ избежать отображения вышеперечисленных сообщений « cannot open directory »?

  • Показывать только скрытые файлы (файлы точек) в псевдониме ls
  • Что делает «>» против «>>»?
  • Почему в директориях / dev для каталогов, например pts?
  • Команда `ls` не отображает содержимое последней директории
  • Как отсортировать результаты из команды ls по дате изменения (сначала в каталогах)?
  • Полная дата файла (без утилит GNU)
  • Цвет точки монтирования
  • ls или find, чтобы исключить двоичные файлы
  • One Solution collect form web for “Как отключить команду ls?”

    Так как это сообщения об ошибках, они отправляются в stderr не stdout. Решение состоит в том, что вы перенаправляете stderr:

     ls -R 2>/dev/null 

    Объяснение:

    Любая команда имеет 3 стандартных дескриптора файла: стандартный вход (0) (обычно терминал, на который вы вводите команды), стандартный вывод (1) (обычно терминал, на котором команда печатает свой вывод) стандартная ошибка (2) (по умолчанию это то же, что и стандартный вывод).

    Большинство (если не все) программ / инструментов печатают предупреждения и ошибки в стандартный дескриптор файла ошибки. Теперь дескрипторы файлов не будут очень полезными, если они будут исправлены; поэтому оболочка предлагает перенаправление : вы можете перенаправить любой стандартный дескриптор файла в любой файл, который вы хотите.

    Перенаправление stdin (для ввода данных из файла вместо вашей клавиатуры):

     interactive_program 0< file_with_answers 

    Как вы можете видеть, это может помочь вам автоматизировать запуск простых программ, которые задают много вопросов, предоставляя так называемый «файл ответов», который подается на стандартный ввод.

    Это можно сократить до

      interactive_program < file_with_answers 

    поскольку < очищает перенаправление ( из файла в программу)

    Аналогично, stdout может быть перенаправлен через 1>... или >... или >>... (добавление к существующему файлу вместо его усечения)

    Для стандартного перенаправления ошибок требуется, чтобы дескриптор файла явно указывал так: 2>... , поэтому то, что указано выше, направляет все ошибки на специальный файл /dev/null который является черным дыркой для бит.

    Соответствующее чтение при перенаправлении, как указано MattDMo в комментариях ниже.

    Interesting Posts

    Fedora Host, Kali VM, мышь KVM / QEMU не работает

    Нет Вход в систему от tty2 до 6

    Что требуется POSIX для цитирования здесь документов внутри подстановки команд?

    Набор библиотек, таких как ncurses в сценарии оболочки

    Разрешения не переводятся между окнами и linux

    Can 'ssh <host> <command>' настраивается всегда на загрузку файлов на стороне сервера?

    Увеличение разрешения командной строки Centos 6.4 VirtualBox

    Невозможно установить гостевые дополнения virtualbox на Ubuntu 16.04.2

    Как вырезать дату / временную метку String?

    Работает ли fstab для обнаружения новых файловых систем и их монтирования?

    Использование исходной команды bash возвращает ошибку, хотя она успешно прочитала конфигурационный файл

    Объедините две команды в .bash_profile

    Что такое «структуры данных ядра»?

    Как исправить отсутствующий апплет Wireless на Debian 8 Gnome Desktop Environment?

    Как перенести вещи из моего репозитория Glelab git в мой репозиторий Gitlab git?

    Linux и Unix - лучшая ОС в мире.