Рассмотрим что-то вроде:
cat file | command > file
Это хорошая практика? Может ли это перезаписать входной файл в то же время, когда мы его читаем, или он всегда сначала читается в памяти, а затем передается второй команде?
Очевидно, я могу использовать временные файлы в качестве промежуточного шага, но мне просто интересно ..
t=$(mktemp)
cat file | command > ${t} && mv ${t} file