/ / Čo robí> robiť v bash? - bash

Čo robí> robiť v bash? - bash

V tomto článku, Ako vytvoriť opravný súbor pre RPM, existuje tento príkaz:

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

Keďže výstup je zapísaný do súboru, jednoduchého operátora presmerovania > funguje dobre pre mňa.

Znamená tento operátor presmerovanie na potrubie? Ak áno, ako sa presmerovanie na rúrku líši od presmerovania na súbor alebo len potrubia do procesu?

odpovede:

6 pre odpoveď č. 1

Vykonaním príkazu

set -o noclobber

alebo ekvivalent

set -C

môžete spôsobiť, že bash odmietne zapisovať do existujúcich súborov pri presmerovaní výstupu.

Použitím >| radšej než > prepíše toto nastavenie.

Referencie:

Alebo spustiť info bash (za predpokladu, že "s nainštalované vo vašom systéme) a vyhľadávanie >|:

s>|

(Ak ste "re znalá csh alebo tcsh, bash" s >| (väčšie-než vertikálny diagram) je podobná csh "s >! (vyššia-ako výkričník).


2 pre odpoveď č. 2

Od bash manpage:

Ak je operátor presmerovania > |, alebo operátor presmerovania je > a noclobber možnosť príkazu set builtin nie je zapnuté presmerovanie > sa pokúsil, aj keď existuje súbor s názvom Word.