Как “отключить звук” команды ls?

Вы были поражены беспорядком с параллелью Tollef от moreutils. См. https://www.gnu.org/software/parallel/history.html

Можно установить Параллель GNU просто:

wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem

Посмотрите вводные видео для Параллели GNU для узнавания больше: https://www.youtube.com/playlist? list=PL284C9FF2488BC6D1

9
11.07.2013, 23:36
1 ответ

Так как это сообщения об ошибках, они отправляются в 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 в комментариях ниже.

24
27.01.2020, 20:04
  • 1
    , что 2>? Можно ли объяснить? –  CodeBlue 11.07.2013, 23:42
  • 2
    Это - команда перенаправления. > перенаправит stdout или стандартный вывод, 2> перенаправления stderr или стандартная погрешность. 1> совпадает с >, таким образом, Вы видите где 2 прибывает из. Можно читать больше о перенаправлении ввода-вывода здесь на Проекте Документации Linux. –  MattDMo 11.07.2013, 23:46
  • 3
    @CodeBlue Видит мой обновленный ответ. обратные галочки –  Joseph R. 11.07.2013, 23:50

Теги

Похожие вопросы