Ist es in Ordnung, dieselbe Eingabedatei wie die Ausgabe eines weitergeleiteten Befehls zu verwenden?

Consider so etwas wie:

cat file | command > file

Ist das eine gute Praxis? Könnte dies dazu führen, dass die Eingabedatei beim Lesen überschrieben wird, oder wird sie immer zuerst im Speicher gelesen und dann an den zweiten Befehl weitergeleitet?

Offensichtlich kann ich temporäre Dateien als Zwischenschritt verwenden, aber ich frage mich nur ..

t=$(mktemp)
cat file | command > ${t} && mv ${t} file

Antworten auf die Frage(6)

Ihre Antwort auf die Frage