Provavelmente, nesse contexto, redirecionamento de saída = redirecionamento da saída padrão ( stdout ) para um arquivo regular .
tree >tree_output.txt
No entanto, o redirecionamento de saída em geral significa o redirecionamento de um dos fluxos de saída padrão (saída padrão ( stdout ) e erro padrão ( stderr ), normalmente ambos direcionados para o terminal) para qualquer coisa que possa ser considerada um arquivo ( arquivo comum, stderr if stdout é o fluxo em questão, stdout if stderr é o fluxo em questão, canal, pipe nomeado (FIFO), dispositivo de bloco, dispositivo de caractere ...) e não é limitado ao redirecionamento da saída padrão ( stdout ) para um arquivo regular como no exemplo.
Portanto, há muitos redirecionamentos de saída possíveis;
Supondo, por uma questão de brevidade, que a saída em questão é a saída padrão ( stdout ), esses são os redirecionamentos possíveis mais comuns:
-
echo foo >file : stdout é redirecionado para um arquivo normal;
-
echo foo >&2 : stdout é redirecionado para stderr ;
-
echo foo | cat : stdout é redirecionado para um canal;
-
mkfifo fifo && echo foo >fifo : stdout é redirecionado para um pipe nomeado (FIFO);
-
echo foo >/dev/sdX : stdout é redirecionado para um dispositivo de bloco ( NÃO FAÇA ISSO - não poderia fazer nada além de bagunçar a tabela de partições do dispositivo de bloco em questão );
Mais redirecionamentos esotéricos:
-
echo foo >/dev/tty : stdout é redirecionado para um dispositivo de caractere, que é o atual pseudo-terminal;
- Pressionando Ctrl + Alt + F1 , logando, pressionando Ctrl + Alt + F7 , pressionando Ctrl + Alt + T , executando
echo foo>/dev/tty1 e pressionando Ctrl + Alt + F1 ; stdout é redirecionado para um dispositivo de caracteres, que é o primeiro pseudo-terminal;
Portanto, o redirecionamento de saída em geral significa o redirecionamento de um dos fluxos de saída padrão (saída padrão ( stdout ) e erro padrão ( stderr ), normalmente ambos direcionados para o terminal) para qualquer coisa que possa ser considerada um arquivo;
Para executar tree usando o redirecionamento de saída (e realmente mostrando algo no terminal), há várias maneiras:
-
tree >tree_output.txt && cat tree_output.txt : executa tree redirecionando stdout para um arquivo normal;
-
tree >&2 : executa tree redirecionando stdout para stderr ;
-
tree | cat : executa tree redirecionando stdout para um canal;
-
mkfifo fifo && tree >fifo : executa tree redirecionando stdout para um canal nomeado;
-
tree >/dev/tty : executa tree redirecionando stdout para um dispositivo de caractere (o pseudo-terminal atual);
- Pressionando Ctrl + Alt + F1 , logando, pressionando Ctrl + Alt + F7 , pressionando Ctrl + Alt + T , executando
echo foo>/dev/tty1 e pressionando Ctrl + Alt + F1 tree >/dev/tty1 : executa tree redirecionando stdout para um dispositivo de caractere (o primeiro pseudo-terminal);