Поскольку он открывает и усекает файл перед чтением данных - это оболочка, перенаправления обрабатываются оболочкой еще до запуска cat
.
Пример кота Linux
1374
studiohack
Не могли бы вы объяснить, почему: «cat <file.txt> file.txt» делает file.txt пустым?
Просто добавьте два нижних ответа: если вы хотите сделать цикл (бесконечно заполняя `file`), вы можете набрать` cat > file.txt` как две >> означает добавление вместо удаления файла.
GregC 14 лет назад
0
Хлоп. Это просто страшно. Я никогда даже не думал об использовании (злоупотреблении?) Кошкой и трубками! Вот почему у нас есть команда «touch». ;-) Делает для классного примера, хотя.
Brian Knoblauch 14 лет назад
0
2 ответа на вопрос
16
Michael Krelin - hacker
13
Gregory Pakosz
>
Перенаправление происходит первым и открывает file.txt
для записи, который очищает любой существующий контент.
Этот ответ несколько вводит в заблуждение - @ хакер более точен. На моих системах перенаправления обрабатываются в порядке спецификации. То есть `<` происходит сначала, а затем `>`, но последнее открывается не просто «для записи», а * с усечением * (`O_TRUNC`), то есть то, что« очищает существующее содержимое ». @hacker прав, это происходит еще до того, как `cat (1)` будет выполнена.
pilcrow 14 лет назад
0
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux
-
6
Полноэкранная медленная вспышка в KDE 4