Почему создает ли «ls> foo» файл, содержащий «foo»? [дубликат]

На этот вопрос уже есть ответ здесь:

Я удалил все файлы в каталоге, а затем запустил ls> foo в том же каталоге.

Запуск cat foo показывает, что вновь созданный файл «foo» содержит «foo». Почему файл "foo" не пустой? Когда выполняется ls , в каталоге еще нет файлов, верно?

16
задан 10 June 2012 в 08:26

1 ответ

Директива командной строки > имеет место до выполнения команды ls. Оболочка должна быть готова сохранить выходные данные, которые может выдать команда ls, поэтому она должна создать и открыть файл для записи.

Когда ls выполняется оболочкой, файл foo существует, и поэтому ls выдает «foo», что вы и нашли в файле foo.

0
ответ дан 10 June 2012 в 08:26

Другие вопросы по тегам:

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