/ / Какво означава> | правя в баш? - Баш

Какво означава> | правя в баш? - Баш

В тази статия, Как да създадете пач файл за RPM, има тази команда:

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

Тъй като изходът се записва във файл, просто операторът за пренасочване > работи добре за мен.

Дали този оператор означава пренасочване към тръба? Ако е така, как е пренасочване към дадена тръба, различно от пренасочване към файл или просто тръба към процес?

Отговори:

6 за отговор № 1

Чрез изпълнение на командата

set -o noclobber

или еквивалента

set -C

можете да причините баш да откаже да записва в съществуващи файлове при пренасочване на изход.

Използвайки >| отколкото > пренебрегва тази настройка.

Препратки:

Или тичай info bash (ако се инсталира на вашата система) и търсите >|:

s>|

(Ако сте запознати с csh и / или tcsh, bash "s >| (по-голяма от вертикалната лента) е подобна на csh "s >! (по-голям от удивителен знак).


2 за отговор № 2

От основната страница:

Ако операторът на пренасочване е> |, илипренасочване операторът е> и опцията noclobber към настроената вградена команда не е активирана, пренасочването> се опитва дори ако файлът с име с дума съществува.