Não é apenas o tipo GNU que tem isso. O tipo BSD também tem. E por quê?
(Eu pensei que era uma boa pergunta também ...)
Na página do manual: "O argumento dado é o nome de um arquivo de saída a ser usado em vez da saída padrão. Este arquivo pode ser o mesmo que um dos arquivos de entrada. "
Você não pode ir para o mesmo arquivo com o redirecionamento, o redirecionamento de saída limpa o arquivo.
Para esclarecer ainda mais, se eu quisesse classificar um arquivo e colocar os resultados classificados no mesmo lugar, eu poderia tentar usar sort < foo > foo
. Exceto o redirecionamento de saída trunca o arquivo foo
na preparação para receber a saída. E então não há nada para classificar. Sem "-o", a maneira de fazer isso seria sort < foo > bar ; mv bar foo
. Presumo que a opção -o
faça algo semelhante sem que você precise se preocupar com isso.