Co oznacza przekierowanie za pomocą> | robić?

16

Kiedy należy użyć >|do przekierowania wyjścia do pliku zamiast po prostu >?

Wyjaśnienie podane, gdy mi pokazano, było takie, że gwarantowało to, że plik docelowy został najpierw obcięty. Ale myślałem, że >już to sugerowało.

Jest >|użyteczny?

Angelo
źródło

Odpowiedzi:

16

To wyraźne obejście noclobberopcji.

W ten sposób możesz zastąpić plik nawet przy pomocy noclobberset.

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

Od man bash:

Jeśli operatorem przekierowania jest>, a opcja noclobber do wbudowanego zestawu została włączona, przekierowanie zakończy się niepowodzeniem, jeśli plik, którego nazwa wynika z rozwinięcia słowa, istnieje i jest zwykłym plikiem. Jeśli operatorem przekierowania jest> | lub operatorem przekierowania jest> i opcja noclobber dla wbudowanej komendy set nie jest włączona, nastąpi próba przekierowania, nawet jeśli plik o nazwie słowo istnieje.

Gilles Quenot
źródło
8

Od 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
źródło