почему выполнение ls > empty.txt показывает пустой.txt внутри empty.txt в пустой папке?

Обычно rsyslogdили syslogdпишут в /var/log/messages. Попробуйте остановить и/или отключить соответствующую службу.

0
10.01.2020, 04:14
1 ответ

Ваш заказ неверен. Вместо того, чтобы каждая программа знала, как перенаправить вывод, перенаправление выполняет оболочка.

Вот что происходит

  1. Оболочка запускает новую оболочку для обработки команды.
  2. Исходная оболочка ожидает завершения работы новой оболочки.
  3. Новая оболочка обрабатывает > empty.txt, что включает в себя создание файла.
  4. Новая оболочка заменяет себя наls
  5. ls запускается, выводит список файла empty.txt и завершает работу.
  6. Первоначальная оболочка уведомляется о том, что новая оболочка, которая стала ls, завершила работу, и печатает новое приглашение.
5
28.01.2020, 02:15

Теги

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