рдЖрда рдЕрд▓реНрдкрдЬреНрдЮрд╛рдд рдмреИрд╢ рд╡рд┐рдХрд▓реНрдк

рдХреБрдЫ рдмреИрд╢ рд╡рд┐рдХрд▓реНрдк рд╕реБрдкреНрд░рд╕рд┐рджреНрдз рд╣реИрдВ рдФрд░ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ

рд╕реЗрдЯ-рдУ рдПрдХреНрд╕рдЯреНрд░реЗрд╕

рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП,

рд╕реЗрдЯ -рдУ рдЗрд░реЗрдХреНрд╕рд┐рдЯ

рдЧрд▓рддреА рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рдпрд╛

рд╕реЗрдЯ -рдУ рдЗрд░реБрдВрд╕реЗрдЯ

рдпрджрд┐ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ рддреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдПред

рд▓реЗрдХрд┐рди рдХрдИ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИрдВ. рдХрднреА-рдХрднреА рдорд╛рдирд╕ рдореЗрдВ рдЙрдирдХрд╛ рд╡рд░реНрдгрди рдмрд╣реБрдд рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдХреЛ рдпрд╣рд╛рдВ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ: Mac рдореЗрдВ рдмреИрд╢ рдХрд╛ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг (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.рд╕реАрдбреА рдордВрддреНрд░

рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рдмреИрд╢ рдЯрд╛рдЗрдкреЛ рдХреЛ рд╕рдордЭрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдЖрдкрдиреЗ рдЧрд▓рдд рд▓рд┐рдЦрд╛ рд╣реИред

$ 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.рдбрд╛рдпрд░рдПрдХреНрд╕рдкреИрдВрдб

рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдЯреИрдм рджрдмрд╛рдХрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ:

$ 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 рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдпрд╣ рджреЗрдЦрдиреЗ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдмреИрд╢ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрдорд╛рдВрдб рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ:

$ 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ