Was bedeutet Umleitung mit> | tun?

16

Wann sollten Sie >|die Ausgabe nicht nur in eine Datei umleiten >?

Als mir dies gezeigt wurde, wurde erklärt, dass garantiert wurde, dass die Zieldatei zuerst abgeschnitten wurde. Aber ich dachte >schon, dass impliziert.

Ist >|nützlich

Angelo
quelle

Antworten:

16

Es ist eine explizite Umgehung der noclobberOption.

Auf diese Weise können Sie die Datei auch mit noclobberset überschreiben .

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

Von man bash:

Wenn der Umleitungsoperator> ist und die Noclobber-Option für den eingebauten Satz aktiviert wurde, schlägt die Umleitung fehl, wenn die Datei, deren Name sich aus der Erweiterung des Wortes ergibt, existiert und eine reguläre Datei ist. Wenn der Umleitungsoperator> | oder der Umleitungsoperator> ist und die Option noclobber für den Befehl set builtin nicht aktiviert ist, wird die Umleitung versucht, auch wenn die mit word benannte Datei vorhanden ist.

Gilles Quenot
quelle
8

Von 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
quelle