Por que não usar apenas fluxos padrão em vez de usar nomes de arquivos?

4

Embora eu entenda que programas como mv precisam de um nome de arquivo real como parâmetro, programas como sort poderiam apenas ler a partir da entrada padrão e escreve na saída padrão como names | sort > names em vez de usar um nome de arquivo e fornece opções como -o : sort names -o names .

Então, quais são as razões por trás disso?

    
por seriousdev 19.11.2011 / 21:44

1 resposta

4

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).

    
por 20.11.2011 / 01:36

Tags