File: redir.sgml

package info (click to toggle)
focalinux 2010-09-3
  • links: PTS
  • area: main
  • in suites: buster, jessie, jessie-kfreebsd, stretch, wheezy
  • size: 2,212 kB
  • ctags: 2
  • sloc: makefile: 151; sh: 10
file content (124 lines) | stat: -rw-r--r-- 5,054 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<chapt id="redir">Redirecionamentos e Pipe
 <p>
Esta seo explica o funcionamento dos recursos de direcionamento de entrada 
e sada do sistema <prgn>GNU/Linux</prgn>. 


<sect id="redir-maior">&gt;
 <p>
Redireciona a sada padro de um programa/comando/script para algum dispositivo ou 
arquivo ao invs do dispositivo de sada padro (tela). 
<![ %DESCRICAOD [ Quando  usado com arquivos, este redirecionamento cria ou 
substitui o contedo do arquivo. ]]> 
 <p>
Por exemplo, voc pode usar o comando <prgn>ls</prgn> para listar arquivos 
e usar <tt>ls &gt;listagem</tt> para enviar a sada do comando para o 
arquivo <file>listagem</file>. Use o comando <prgn>cat</prgn> para 
visualizar o contedo do arquivo <file>listagem</file>. 
 <p>
O mesmo comando pode ser redirecionado para o segundo console 
<file>/dev/tty2</file> usando: 
<tt>ls &gt;/dev/tty2</tt>, o resultado do comando <prgn>ls</prgn> ser  
mostrado no segundo console (pressione <tt>ALT</tt> e <tt>F2</tt> para 
mudar para o segundo console e <tt>ALT</tt> e <tt>F1</tt> para retornar 
ao primeiro). O mesmo resultado pode ser obtido com o comando 
<tt>ls 1&gt;/dev/tty2</tt>, sendo que o nmero <tt>1</tt> indica que ser 
capturada a sada padro do comando.
 <p>
Para redirecionar somente a sada de erros do comando <prgn>ls</prgn>, use a 
sintaxe: <tt>ls 2&gt;/tmp/erros-do-ls</tt>

<sect id="redir-maior2">&gt;&gt;
 <p>
Redireciona a sada padro de um programa/comando/script para algum 
dispositivo ou adiciona as linhas ao final de arquivo ao invs do dispositivo de 
sada padro (tela). 
<![ %DESCRICAOD [ A diferena entre este redirecionamento duplo e o 
simples,  se caso for usado com arquivos, adiciona a sada do comando ao 
final do arquivo existente ao invs de substituir seu contedo. ]]>. 
 <p>
Por exemplo, voc pode acrescentar a sada do comando <prgn>ls</prgn> 
ao arquivo <file>listagem</file> do captulo anterior usando 
<tt>ls / &gt;&gt;listagem</tt>. Use o comando <prgn>cat</prgn> para 
visualizar o contedo do arquivo <file>listagem</file>. 


<sect id="redir-menor">&lt;
 <p>
Direciona a entrada padro de arquivo/dispositivo para um comando. 
Este comando faz o contrrio do anterior, ele envia dados ao comando. 
 <p>
Voc pode usar o comando <tt>cat &lt;teste.txt</tt> para enviar o contedo 
do arquivo <file>teste.txt</file> ao comando <prgn>cat</prgn> que mostrar seu 
contedo ( claro que o mesmo resultado pode ser obtido com 
<tt>cat teste.txt</tt> mas este exemplo serviu para mostrar a 
funcionalidade do &lt;).


<sect id="redir-menor2">&lt;&lt;
 <p>
Este redirecionamento serve principalmente para marcar o fim de exibio de um 
bloco. Este  especialmente usado em conjunto com o comando <prgn>cat</prgn>, mas 
tambm tem outras aplicaes. Por exemplo:
<example>
 cat &lt;&lt; final
este arquivo
ser mostrado
at que a palavra final seja 
localizada no inicio da linha
final

</example>


<sect id="redir-pipe">| (pipe)
 <p>
Envia a sada de um comando para a entrada do prximo comando 
para continuidade do processamento. Os dados enviados so processados 
pelo prximo comando que mostrar o resultado do processamento.
 <p>
Por exemplo: <tt>ls -la | more</tt>, este comando faz a listagem longa de 
arquivos que  enviado ao comando <prgn>more</prgn> (que tem a funo 
de efetuar uma pausa a cada 25 linhas do arquivo). 
 <p>
Outro exemplo  o comando <tt>locate find | grep "bin/"</tt>, neste comando 
todos os caminhos/arquivos que contm <em>find</em> na listagem sero 
mostrados (inclusive man pages, bibliotecas, etc.), ento enviamos 
a sada deste comando para <tt>grep "bin/"</tt> para mostrar somente os 
diretrios que contm binrios. Mesmo assim a listagem ocupe mais de uma 
tela, podemos acrescentar o <prgn>more</prgn>: 
<tt>locate find | grep "bin/" | more</tt>.
 <p>
Podem ser usados mais de um comando de redirecionamento (&lt;, &gt;, |) em 
um mesmo comando.


<sect>Diferena entre o "|" e o "&gt;"
 <p>
A principal diferena entre o "|" e o "&gt;",  que o Pipe envolve 
processamento entre comandos, ou seja, a sada de um comando  enviado  
a entrada do prximo e o "&gt;" redireciona a sada de um comando para  
um arquivo/dispositivo. 
 <p>
Voc pode notar pelo exemplo acima (<tt>ls -la | more</tt>) que 
ambos <tt>ls</tt> e <tt>more</tt> so comandos porque esto separados 
por um "|". Se um deles no existir ou estiver digitado incorretamente, 
ser mostrada uma mensagem de erro. 
 <p>
Um resultado diferente seria obtido usando um <tt>"&gt;"</tt> no lugar do 
<tt>"|"</tt>; A sada do comando <tt>ls -la &gt; more</tt> seria gravada em um 
arquivo chamado <file>more</file>. 


<sect id="redir-tee">tee
 <p>
Envia ao mesmo tempo o resultado do programa para a sada padro (tela) 
e para um arquivo. Este comando deve ser usado com o pipe "|". 
 <p>
<tt><em>comando</em> |tee [<em>arquivo</em>]</tt>
<![ %EXEMPLO [
 <p>
Exemplo: <tt>ls -la | tee listagem.txt</tt>, a sada do comando 
ser mostrada normalmente na tela e ao mesmo tempo gravada no arquivo 
<file>listagem.txt</file>. ]]>