Обычно мы используем другой файл для перенаправления вывода.
Например :
cat < first > temp
В этой команде содержимое first перенаправляется в temp вместо стандартного вывода.
Тогда почему он усекает файл, если я использую то же имя файла?
Почему он не может перезаписать один и тот же файл?
cat < first > first
cat < first > temp
работает просто отлично.