/ / O que> | fazer em bash? - bash

O que faz> | fazer em bash? - bash

Neste artigo, Como criar um arquivo de patch para um RPM, existe este comando:

diff -ru base-1.4.4-orig base-1.4.4 >| $HOME/rpmbuild/SOURCES/base-1.4.4-f12.patch

Como a saída é gravada em um arquivo, o operador de redirecionamento simples > funciona bem para mim.

Esse operador significa redirecionar para um pipe? Em caso afirmativo, como um redirecionamento para um canal é diferente de apenas um redirecionamento para um arquivo ou apenas um canal para um processo?

Respostas:

6 para resposta № 1

Executando o comando

set -o noclobber

ou o equivalente

set -C

você pode fazer com que o bash se recuse a gravar em arquivos existentes ao redirecionar a saída.

Usando >| ao invés de > substitui essa configuração.

Referências:

Ou correr info bash (assumindo que ele está instalado no seu sistema) e procure por >|:

s>|

(Se você está familiarizado com csh e / ou tcsh, bash >| (maior que a barra vertical) é semelhante a csh "s >! (maior que o ponto de exclamação).


2 para resposta № 2

Na manchage bash:

Se o operador de redirecionamento for> |, ou oredirecionamento operador is> e a opção noclobber para o comando set builtin não está habilitada, o redirecionamento> é tentado mesmo se o arquivo nomeado pela palavra existe.