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