parte do fusor é enviada para stdout (saída padrão) e parte para erro padrão.
como a saída é dividida?
mecanismo de tubulação somente captura stdout.
fusor simples
mybox $ fuser /
/: 350r 356r 357r 364r 10484rc 10485r
agora redirecionando, veja pid em um, enquanto o tipo de arquivo (c ou r) está em stderr.
mybox $ fuser / > a
/: rrrrrcr
o arquivo "a" não termina com uma nova linha.
mybox $ cat a
350 356 357 364 10484 10485mybox $
agora redirecionando ambos.
mybox $ fuser / > aa 2> bb
mybox $ cat aa
350 356 357 364 10484 10485mybox $
mybox $ cat bb
/: rrrrrcr
-
2>
redirectstderr
para canalizar ambos em um comando
mybox $ fuser / > cc 2>&1
mybox $ fuser / 2>&1 | wc
1 8 71
mybox $ fuser / 2>&1 | nl
1 /: 350r 356r 357r 364r 10484rc 10485r 11761r
-
2>&1
"mesclar"stdout
estderr
por que a saída é dividida?
um dos principais usos do fusor é matar o ponto de montagem "holding" do processo.
do meu comando acima, você poderia usar o conteúdo de um arquivo para matar todo o processo.
mybox $ fuser /foo/bar > a
/foo/bar: rrrrrcr
mybox $ cat a
350 356 357 364 10484 10485mybox $
mybox $ kill $(<a)
- $ () significa sintaxe: conteúdo do arquivo 'a'