Isso acontece porque o redirecionamento >
ocorre antes que o programa head
seja iniciado. O redirecionamento >
trunca o arquivo se existir, portanto, quando o head
estiver lendo um arquivo, ele já estará vazio.
Dado um arquivo, foo.txt:
1
2
3
4
5
Digamos que queremos alterá-lo para conter:
1
2
3
Por que o head -n3 foo.txt > foo.txt
deixa o foo.txt vazio?
Tags head io-redirection