Em suma, isso dá aos programas muito mais flexibilidade e facilidade de uso com pouquíssima programação extra. Então porque não?
A maioria dos utilitários principais que operam de maneira aplicável têm essa funcionalidade. Eu não sou um programador perl, mas eu acredito que o operador de diamantes <>
age da mesma maneira - leia arquivos se eles estiverem presentes na linha de comando, ou de outra forma). E eu também pareço lembrar Larry dizendo que era assim que os scripts perl poderiam facilmente emular os principais utilitários naquele recurso.
Mais precisamente, permite que os programas atuem em muitos arquivos de uma só vez, e eles podem diferenciá-los. Usando o gato, você não poderia fazer isso. Sem os nomes, você não poderia ter utilitários que agem em linha ( sed -i
) ou aqueles que diferenciam com base no arquivo ( wc
). Ele também parece mais limpo (IMO): sort file -o sorted
vs cat file | sort > sorted
ou sort <file >sorted
(que, btw, não funcionará corretamente inline, lendo e gravando o mesmo arquivo).