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

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

 $ ls -R 

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

  • Нет такого файла или каталога, но я могу это увидеть!
  • Как получить общий размер всего в каталоге в одной строке?
  • Скажите, скрыта ли папка / файл в Mac OS X
  • Только если в «/»: alias ls = 'ls -I test'?
  • Почему * не * разбирать `ls`?
  • Как использовать ls, используя длинный формат (-l), в то же время следуя символическим ссылкам каталога?
  • Я получаю много сообщений, подобных этим –

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

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

  • Что означает «число» в поле владельца файлов в Linux?
  • Как проверить групповые разрешения файла
  • Могу ли я искать файл в соответствии с конкретными типами символов?
  • dircolors: изменить настройки цвета globaly
  • Как отключить мигание имен файлов в rlogin
  • Использование 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 в комментариях ниже.

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