Поскольку вы записываете обратно в один и тот же файл, у вас всегда будет проблема с перенаправлением, открывающим выходной файл до того, как сортировка завершит загрузку оригинала.Так что да, вам нужно использовать отдельный файл.
Теперь, сказав, что есть способы сначала буферизовать весь файл в поток данных, но обычно вы этого не захотите, хотя это и так.возможно, если вы напишете что-нибудь для этого.Но вы будете вставлять специальные инструменты в начале и в конце для буферизации.Bash, однако, откроет выходной файл слишком рано, если вы используете его перенаправление >
.