Сегодня я экспериментировал с некоторыми операциями добавления и, по своему любопытству, запустил это (где file1.txt был не пуст, а file2.txt был пуст):
$ cat file1.txt >> file2.txt >> file1.txt
Когда я увидел, что это заняло некоторое время, я нажал Ctrl+, Cчтобы закончить. К тому времени размер файла file1.txt составлял сотни МБ.
Переключение имен файлов не дает того же эффекта; только когда файлы находятся в этом порядке, происходит бесконечное перенаправление. Что именно происходит, что вызывает это?
источник
Я не смог воспроизвести это в оболочке Bash:
1 файл создается с длиной 0, но затем я получаю сообщение выше:
Основываясь на ответе @ jlliagre, я не уверен, почему я получаю 2 файла. Это может зависеть от
cat
реализации.РЕДАКТИРОВАТЬ # 1
@jlliagre обновил свой ответ, чтобы показать этот код, который он утверждает как эквивалент:
Так что теперь я знаю, почему я получаю пустое
file2.txt
. Это обозначение является законным:И создаст пустой файл.
источник
file1.txt
начав с непустого.cat
поведение лучше.