Na terceira edição de "Learning the Bash shell" de Newham e Rosenblatt está escrito na página 15 como um comentário:
se um determinado utilitário UNIX não aceitar a entrada padrão quando você deixar de fora o argumento do nome do arquivo, tente usar um traço (0) como argumento. Alguns sistemas NIX fornecem entrada padrão como um arquivo para que você possa tentar fornecer o arquivo /dev/stdin como o arquivo de entrada argumnet.
A última frase não está clara para mim - qual é o significado de "fornecer entrada padrão como um arquivo"?
Não é perigoso criar "repetidamente" arquivos nomeados /dev/stdin
em um sistema (eu pessoalmente uso o Ubuntu 16.04).
BTW me deparei com um caso semelhante neste post .
Não se trata de criar
/dev/stdin
, trata-se de usá-lo: você especifica/dev/stdin
como o arquivo a ser usado com qualquer comando que não suporte a entrada padrão por padrão (ou usando-
), para que ele use sua entrada padrão de qualquer maneira.Desta forma
all faz a
cat
leitura de sua entrada padrão (embora de uma maneira ligeiramente diferente ao usar/dev/stdin
, com um descritor de arquivo diferente, o que significa que não é equivalente em todos os casos). Não estou criando/dev/stdin
, estou usando o nó de dispositivo pré-existente como um argumento paracat
.