Um comando de filtro é praticamente qualquer programa de linha de comando no UNIX, na verdade.
Todo programa que pode ler de STDIN
e saída para STDOUT
pode ser usado como filtro.
Existem exceções, no entanto. Uma dessas exceções é cpio
, que pega uma lista de arquivos de STDIN
para criar um arquivo na saída.
Existem alguns comandos que parecem não conseguir ler STDIN
, mas você deve verificar se esses comandos usam -
como parâmetro de arquivo para ler STDIN
ou gravar em STDOUT
, como cat
:
$ cat f - g
Output f’s contents, then standard input, then g’s contents.
Mas mesmo quando seu programa não usa isso, você ainda pode ainda forçar um programa a agir como um filtro:
Por exemplo, use wget
e você quer que a saída desse programa seja para STDOUT
:
$ wget -O /dev/stdout http://stackoverflow.com/ | less
, por exemplo: Você pode usar /dev/stdin
, /dev/stdout
e /dev/stderr
como arquivos para forçar a leitura de um programa ou saída para os descritores de I / O padrão.
Outra observação: o comprimento do seu tubo pode durar o tempo que você quiser, então você pode canalizar de um programa para outro, basicamente fazendo dele uma longa cadeia de filtros:
$ cat file | xz | ccrypt &>/dev/null