O que faz o redirecionamento com> | Faz?

16

Quando você deve usar >|para redirecionar a saída para um arquivo em vez de apenas >?

A explicação dada quando me foi mostrado isso foi que ele garantiu que o arquivo de destino fosse truncado primeiro. Mas eu >já pensei que isso implicava.

É >|útil?

Angelo
fonte

Respostas:

16

É um desvio explícito de noclobberopção.

Dessa forma, você pode substituir o arquivo mesmo com o noclobberconjunto.

Veja http://mywiki.wooledge.org/NoClobber

De man bash:

Se o operador de redirecionamento for> e a opção noclobber para o conjunto interno tiver sido ativada, o redirecionamento falhará se o arquivo cujo nome resultar da expansão da palavra existir e for um arquivo regular. Se o operador de redirecionamento for> | ou o operador de redirecionamento for> e a opção noclobber para o comando set builtin não estiver ativada, o redirecionamento será tentado mesmo se o arquivo nomeado por palavra existir.

Gilles Quenot
fonte
8

De man bash:

         -C      If set, bash does not overwrite an  existing  file  with
                  the  >,  >&,  and <> redirection operators.  This may be
                  overridden when creating output files by using the redi
                  rection operator >| instead of >.
michas
fonte