ΠžΡΡƒΠΌ ΠΌΠ°Π»ΠΊΡƒ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ баш ΠΎΠΏΡ†ΠΈΠΈ

НСкои ΠΎΠΏΡ†ΠΈΠΈ Π½Π° Bash сС Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ ΠΈ чСсто сС користат. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ½ΠΎΠ³Ρƒ Π»ΡƒΡ“Π΅ ΠΏΠΈΡˆΡƒΠ²Π°Π°Ρ‚ Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ Π½Π° сцСнариото

постави -o xtrace

Π·Π° Π΄Π΅Π±Π°Π³ΠΈΡ€Π°ΡšΠ΅,

постави -ΠΎ СрСксит

Π΄Π° излСзСш ΠΏΠΎ Π³Ρ€Π΅ΡˆΠΊΠ° ΠΈΠ»ΠΈ

сСт -o Π³Ρ€Π΅ΡˆΠΈ

Π΄Π° ΠΈΠ·Π»Π΅Π·Π΅Ρ‚Π΅ Π°ΠΊΠΎ ΠΏΠΎΠ²ΠΈΠΊΠ°Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π΅ Π΅ поставСна.

Но, ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρƒ Π΄Ρ€ΡƒΠ³ΠΈ ΠΎΠΏΡ†ΠΈΠΈ. ПонСкогаш Ρ‚ΠΈΠ΅ сС ΠΎΠΏΠΈΡˆΡƒΠ²Π°Π°Ρ‚ ΠΏΡ€Π΅ΠΌΠ½ΠΎΠ³Ρƒ Π·Π±ΡƒΠ½ΡƒΠ²Π°Ρ‡ΠΊΠΈ Π²ΠΎ ΠΌΠ°Π½Π°, ΠΏΠ° Π·Π°Ρ‚ΠΎΠ° Π³ΠΈ собрав Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ Π½Π°Ρ˜ΠΊΠΎΡ€ΠΈΡΠ½ΠΈΡ‚Π΅ ΠΎΠ²Π΄Π΅, со ΠΎΠ±Ρ˜Π°ΡΠ½ΡƒΠ²Π°ΡšΠ΅.

Π—Π°Π±Π΅Π»Π΅ΡˆΠΊΠ°: Mac ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ°Π°Ρ‚ постара Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π½Π° bash (3.x намСсто 4.x) ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ Π½Π΅ сС достапни ситС ΠΎΠ²ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ. Π’ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜, Π²ΠΈΠ΄Π΅Ρ‚Π΅ Ρ‚ΡƒΠΊΠ° ΠΈΠ»ΠΈ Ρ‚ΡƒΠΊΠ°.

set ΠΈΠ»ΠΈ shopt?

ΠŸΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ Π΄Π²Π° Π½Π°Ρ‡ΠΈΠ½Π° Π·Π° ΠΏΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° баш ΠΎΠΏΡ†ΠΈΠΈ: ΠΎΠ΄ скрипта ΠΈΠ»ΠΈ ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ‚Π° линија. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° користитС Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ set ΠΈ shopt. И Π΄Π²Π΅Ρ‚Π΅ Π³ΠΎ ΠΌΠ΅Π½ΡƒΠ²Π°Π°Ρ‚ ΠΎΠ΄Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΡˆΠΊΠΎΠ»ΠΊΠ°Ρ‚Π°, Π³ΠΎ ΠΏΡ€Π°Π²Π°Ρ‚ рСчиси истото (со Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ), Π½ΠΎ сС Ρ€Π°Π·Π»ΠΈΠΊΡƒΠ²Π°Π°Ρ‚ ΠΏΠΎ Π½ΠΈΠ²Π½ΠΎΡ‚ΠΎ ΠΏΠΎΡ‚Π΅ΠΊΠ»ΠΎ... ΠžΠΏΡ†ΠΈΠΈ set сС наслСдСни ΠΈΠ»ΠΈ позајмСни ΠΎΠ΄ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ школки, Π΄ΠΎΠ΄Π΅ΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ shopt создадСн Π²ΠΎ баш.

Ако сакатС Π΄Π° Π³ΠΈ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Π΅ΠΊΠΎΠ²Π½ΠΈΡ‚Π΅ ΠΎΠΏΡ†ΠΈΠΈ, ΡΡ‚Π°Ρ€Ρ‚ΡƒΠ²Π°Ρ˜Ρ‚Π΅:

$ set -o
$ shopt

Π—Π° Π΄Π° ја Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° Π²ΠΎ set Π‘Π΅ користи Π΄ΠΎΠ»Π³Π° ΠΈΠ»ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠ° синтакса:

$ set -o errunset
$ set -e

Π•Ρ„Π΅ΠΊΡ‚ΠΎΡ‚ Π΅ ист.

Π—Π° Π΄Π° ја исклучитС ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π°, Ρ‚Ρ€Π΅Π±Π° Π΄Π° ставитС плус намСсто минус:

$ set +e

Π”ΠΎΠ»Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Π² Π΄Π° сС сСтам Π½Π° ΠΎΠ²Π°Π° синтакса бидСјќи Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° изглСдашС ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½Π° (Π·Π½Π°ΠΊΠΎΡ‚ минус ја ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π°, Π° Π·Π½Π°ΠΊΠΎΡ‚ плус ја ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π°).

Π’ shopt (ΠΏΠΎΠ»ΠΎΠ³ΠΈΡ‡Π½ΠΎ) Π·Π½Π°ΠΌΠ΅Π½Ρ†Π°Ρ‚Π° сС користат Π·Π° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π°ΡšΠ΅ ΠΈ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ -s (сСт) ΠΈ -u (нСпоставСн):

$ shopt -s cdspell # <= on
$ shopt -u cdspell # <= off

ΠŸΡ€ΠΎΠΌΠ΅Π½Π° Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ

ΠŸΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΎΠΏΡ†ΠΈΠΈ ΠΊΠΎΠΈ Π²ΠΈ ΠΏΠΎΠΌΠ°Π³Π°Π°Ρ‚ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ со Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ.

1.cdspel

Π‘ΠΎ ΠΎΠ²Π°Π° поставка, bash ќС ΠΏΠΎΡ‡Π½Π΅ Π΄Π° Π³ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΈΡ‚Π΅ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ ќС Π²Π΅ однСсС Π΄ΠΎ ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° Ρ‡ΠΈΠ΅ ΠΈΠΌΠ΅ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎ стС Π³ΠΎ напишалС.

$ shopt -s cdspell
$ mkdir abcdefg
$ cd abcdeg
abcdefg
$ cd ..

Оваа ΠΎΠΏΡ†ΠΈΡ˜Π° ја користам ΠΌΠ½ΠΎΠ³Ρƒ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³Ρƒ Ρ€Π΅Ρ‚ΠΊΠΎ (ΠΌΠΎΠΆΠ΅Π±ΠΈ Сднаш годишно) донСсува ΠΌΠ½ΠΎΠ³Ρƒ Ρ‡ΡƒΠ΄Π½Π° ΠΎΠ΄Π»ΡƒΠΊΠ°. Но Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Π΄Π΅Π½ΠΎΠ²ΠΈ cdspell Π·Π°ΡˆΡ‚Π΅Π΄ΡƒΠ²Π° Π²Ρ€Π΅ΠΌΠ΅, Π±ΡƒΠΊΠ²Π°Π»Π½ΠΎ сСкој Π΄Π΅Π½.

2. Π°Π²Ρ‚ΠΎΠΊΠ΄

Ако Π½Π΅ стС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ Π΄Π° ја ΠΏΡ€ΠΈΡ„Π°Ρ‚ΠΈΡ‚Π΅ нССфикасноста Π½Π° ΠΏΠΎΠ²Π΅ΡœΠ΅ΠΊΡ€Π°Ρ‚Π½ΠΈ записи cd, Ρ‚ΠΎΠ³Π°Ρˆ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја поставитС ΠΎΠ²Π°Π° ΠΎΠΏΡ†ΠΈΡ˜Π° Π΄Π° сС прСмСсти Π²ΠΎ ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° X Π°ΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° X Π½Π΅ постои.

$ shopt -s autocd
$ abcdefg
$ cd ..

Π’ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ˜Π° со автоматско ΠΊΠΎΠΌΠΏΠ»Π΅Ρ‚ΠΈΡ€Π°ΡšΠ΅, ΠΎΠ²Π° Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π±Ρ€Π·ΠΎ Π΄Π° скокатС ΠΏΠΎΠΌΠ΅Ρ“Ρƒ ΠΏΠ°ΠΏΠΊΠΈΡ‚Π΅:

$ ./abc[TAB][RETURN]
cd -- ./abcdefg

Π‘Π°ΠΌΠΎ Π½Π΅ ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Ρ˜Ρ‚Π΅ ја ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° rm -rf * (Π΄Π°, ΠΏΠ°Ρ‚Π΅ΠΌ, ΠΎΠ²Π° Π΅ ΠΌΠΎΠΆΠ½ΠΎ).

3.Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΡ€ΠΎΡˆΠΈΡ€ΡƒΠ²Π°ΡšΠ΅

Ова Π΅ ΠΎΠ΄Π»ΠΈΡ‡Π½Π° ΠΎΠΏΡ†ΠΈΡ˜Π° која Π³ΠΈ ΠΏΡ€ΠΎΡˆΠΈΡ€ΡƒΠ²Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°Ρ‚Π° со ΠΏΡ€ΠΈΡ‚ΠΈΡΠΊΠ°ΡšΠ΅ Π½Π° Tab:

$ shopt -s direxpand
$ ./[TAB]     # замСняСтся Π½Π°...
$ /full/path/to/current_working_folder
$ ~/[TAB]     # замСняСтся Π½Π°...
$ /full/path/to/home/folder
$ $HOME/[TAB] #  замСняСтся Π½Π°...
$ /full/path/to/home/folder

чист ΠΈΠ·Π»Π΅Π·

4. ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ

Оваа ΠΎΠΏΡ†ΠΈΡ˜Π° прСстанува Π΄Π° сС ΠΎΠ΄Ρ˜Π°Π²ΡƒΠ²Π° ΠΎΠ΄ ΡΠ΅ΡΠΈΡ˜Π°Ρ‚Π° Π°ΠΊΠΎ сè ΡƒΡˆΡ‚Π΅ ΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠΎΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π²ΠΎ Π·Π°Π΄Π½ΠΈΠ½Π°.

НамСсто Π΄Π° ΠΈΠ·Π»Π΅Π·Π΅Ρ‚Π΅, сС ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π° список со Π½Π΅Π·Π°Π²Ρ€ΡˆΠ΅Π½ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ. Ако сè ΡƒΡˆΡ‚Π΅ сакатС Π΄Π° ΠΈΠ·Π»Π΅Π·Π΅Ρ‚Π΅, Ρ‚ΠΎΠ³Π°Ρˆ внСсСтС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ exit.

$ shopt -s checkjobs
$ echo $$
68125             # <= ID процСсса для ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ
$ sleep 999 &
$ exit
There are running jobs.
[1]+  Running                 sleep 999 &
$ echo $$
68125             # <= ID процСсса для ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅
$ exit
There are running jobs.
[1]+  Running                 sleep 999 &
$ exit
$ echo $$
$ 59316           # <= Π½Π° этот Ρ€Π°Π· ID процСсса  измСнился

БупСрсили Π·Π° Π·Π°ΠΌΠ΅Π½Π°

5.Π³Π»ΠΎΠ±Ρ•Π²Π΅Π·Π΄Π°

Оваа ΠΎΠΏΡ†ΠΈΡ˜Π° Π²ΠΈ Π΄Π°Π²Π° ΡΡƒΠΏΠ΅Ρ€ΠΌΠΎΡœ Π·Π° Π·Π°ΠΌΠ΅Π½Π°! Ако внСсСтС:

$ shopt -s globstar
$ ls **

Ρ‚ΠΎΠ³Π°Ρˆ школка ќС Π³ΠΈ ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ΅ ситС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ Ρ€Π΅ΠΊΡƒΡ€Π·ΠΈΠ²Π½ΠΎ.

Π’ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ˜Π° со direxpand ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ€Π·ΠΎ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ сè пониско Π²ΠΎ Ρ…ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ˜Π°Ρ‚Π°:

$ shopt -s direxpand
$ ls **[TAB][TAB]
Display all 2033 possibilities? (y or n) 

6.extglob

Оваа ΠΎΠΏΡ†ΠΈΡ˜Π° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠΈ почСсто сС ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°Π°Ρ‚ со Ρ€Π΅Π³ΡƒΠ»Π°Ρ€Π½ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ. ПонСкогаш ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³Ρƒ корисно:

$ shopt -s extglob
$ touch afile bfile cfile
$ ls
afile bfile cfile
$ ls ?(a*|b*)
afile bfile
$ ls !(a*|b*)
cfile

ОвдС ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΡ‚Π΅ сС ставаат Π²ΠΎ Π·Π°Π³Ρ€Π°Π΄ΠΈ ΠΈ сС ΠΎΠ΄Π΄Π΅Π»ΡƒΠ²Π°Π°Ρ‚ со Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½Π° Π»Π΅Π½Ρ‚Π°. Π•Π²Π΅ Π³ΠΈ достапнитС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ:

? = ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° Π½Π° Π½ΡƒΠ»Π° ΠΈΠ»ΠΈ Π΅Π΄Π½Π° појава Π½Π° Π΄Π°Π΄Π΅Π½ΠΈΡ‚Π΅ обрасци
! = ΠΏΡ€ΠΈΠΊΠ°ΠΆΠΈ сС ΡˆΡ‚ΠΎ Π½Π΅ ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° Π½Π° Π΄Π°Π΄Π΅Π½ΠΈΡ‚Π΅ обрасци
* = Π½ΡƒΠ»Π° ΠΈΠ»ΠΈ повСќС појави
+ = Сдна или повСќС појави
@ = Ρ‚ΠΎΡ‡Π½ΠΎ Π΅Π΄Π½Π° појава

Π—Π°ΡˆΡ‚ΠΈΡ‚Π° ΠΎΠ΄ Π½Π΅ΡΡ€Π΅ΡœΠΈ

7. histverify

На ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΌΠ°Π»ΠΊΡƒ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ Π΄Π° сС користат ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ Π·Π° Π±Ρ€Π·ΠΎ ΡΡ‚Π°Ρ€Ρ‚ΡƒΠ²Π°ΡšΠ΅ ΠΎΠ΄ ΠΈΡΡ‚ΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΊΡ€Π°Ρ‚Π΅Π½ΠΊΠΈΡ‚Π΅ !! ΠΈ !$.

ΠžΠΏΡ†ΠΈΡ˜Π° histverify Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° ΠΏΡ€Π²ΠΎ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠΎ Bash ја Ρ‚ΠΎΠ»ΠΊΡƒΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° ΠΏΡ€Π΅Π΄ Π΄Π° сС ΠΈΠ·Π²Ρ€ΡˆΠΈ:

$ shopt -s histverify
$ echo !$          # <= По Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Enter ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ запускаСтся
$ echo histverify  # <= Она сначала дСмонстрируСтся Π½Π° экранС,
histverify         # <= Π° ΠΏΠΎΡ‚ΠΎΠΌ запускаСтся 

8. НоклобСр

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, Π·Π° Π·Π°ΡˆΡ‚ΠΈΡ‚Π° ΠΎΠ΄ Π½Π΅ΡΡ€Π΅ΡœΠΈ, ΠΈΠΌΠ΅Π½ΠΎ ΠΎΠ΄ ΠΏΡ€Π΅ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΡˆΡ‚ΠΎ вСќС постои кај ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΡ‚ Π·Π° ΠΏΡ€Π΅Π½Π°ΡΠΎΡ‡ΡƒΠ²Π°ΡšΠ΅ (>). Ова ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ катастрофа Π°ΠΊΠΎ Π½Π΅ΠΌΠ°Ρ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½Π° копија.

ΠžΠΏΡ†ΠΈΡ˜Π° set -Π‘ Π·Π°Π±Ρ€Π°Π½ΡƒΠ²Π° Ρ‚Π°ΠΊΠ²ΠΎ ΠΏΡ€Π΅ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅. Π”ΠΎΠΊΠΎΠ»ΠΊΡƒ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈΡ‚Π΅ Π·Π°ΡˆΡ‚ΠΈΡ‚Π°Ρ‚Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΡ‚ >|:

$ touch afile
$ set -C
$ echo something > afile
-bash: afile: cannot overwrite existing file
$ echo something >| afile
$

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€