/ / Was macht> | in der bash machen? - Bash

Was macht> | in der bash machen? - Bash

In diesem Artikel, So erstellen Sie eine Patch-Datei für ein RPM, da ist dieser Befehl:

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

Da die Ausgabe in eine Datei geschrieben wird, ist der einfache Umleitungsoperator > funktioniert gut für mich.

Bedeutet dieser Operator Umleitung zu einer Rohrleitung? Wenn ja, wie unterscheidet sich eine Umleitung zu einer Pipe von einer Umleitung zu einer Datei oder nur von einer Pipe zu einem Prozess?

Antworten:

6 für die Antwort № 1

Durch Ausführen des Befehls

set -o noclobber

oder das Äquivalent

set -C

Sie können verhindern, dass bash beim Umleiten von Ausgaben in vorhandene Dateien schreibt.

Verwenden >| eher, als > überschreibt diese Einstellung.

Verweise:

Oder laufe info bash (vorausgesetzt, es ist auf Ihrem System installiert) und suchen Sie nach >|:

s>|

(Wenn Sie mit csh und / oder tcsh, bash vertraut sind >| (größer als der vertikale Balken) ist ähnlich wie csh "s >! (größer als Ausrufezeichen).


2 für die Antwort № 2

Aus der Bash-Manpage:

Wenn der Umleitungsoperator> | ist, oder derUmleitung operator is> und die Option noclobber für den Befehl set builtin nicht aktiviert ist, wird die Umleitung> auch bei der angegebenen Datei versucht per Wort existiert.