Se o comando exigir apenas um nome de arquivo, especifique /dev/stdin
ou /dev/fd/0
. Esses são arquivos especiais; abri-los realmente duplica a entrada padrão. Alguns comandos aceitam -
como um alias para entrada padrão também.
unrar p foo.rar somefile | somecommand -
unrar p foo.rar somefile | somecommand /dev/stdin
Ocasionalmente, um programa impõe restrições ao nome do arquivo, geralmente exigindo uma extensão específica. Você pode ser capaz de enganá-lo com um link simbólico.
ln -s /dev/stdin myfile.ext
unrar p foo.rar somefile | somecommand myfile.ext
Isso nem sempre funciona, porque alguns programas não conseguem lidar com a entrada canalizada: eles exigem arquivos procuráveis, ou seja, arquivos onde eles podem ir e voltar à vontade. Nesse caso, você precisa criar um arquivo temporário.
Em alguns casos, você pode organizar os dados para que apareçam como um arquivo regular e não como a saída de um comando. O FUSE , em particular, pode fazer todos os tipos de coisas aparecerem como arquivos regulares. Por exemplo, com o AVFS , os membros do arquivo aparecem como arquivos.
mountavfs
cd "~/.avfs$PWD/foo.rar\#"
somecommand somefile