【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。
在shell脚本中,默认状况下,总是有三个文件处于关上状态,规范输出(键盘输入)、规范输入(输入到屏幕)、规范谬误(也是输入到屏幕),它们别离对应的文件描述符是 0,1,2 。
&
是一个描述符,如果1或2前不加&,会被当成一个一般文件。>
默认为规范输入重定向,与1>
雷同1>&2
意思是把规范输入重定向到规范谬误.2>&1
意思是把规范谬误输入重定向到规范输入。&>filename
意思是把规范输入和规范谬误输入都重定向到文件filename中.>&2
即1>&2
也就是把后果输入到和规范谬误一样
/dev/null
是一个文件,这个文件比拟非凡,所有传给它的货色它都抛弃掉
规范输入和谬误输入
> ls rumenz.txt > ls rumenz.txt 1.txt ls: 1.txt: No such file or directory rumenz.txt
- 因为
1.txt
不存在,所以ls: 1.txt: No such file or directory
就是谬误输入就是2。 rumenz.txt
文件是存在的,所以rumenz.txt
就是规范输入。就是1。
把上述的规范输入和谬误输入重定向到文件
> ls rumenz.txt 1.txt 1>out.log 2>err.log > cat out.log rumenz.txt > rumenz cat err.log ls: 1.txt: No such file or directory
out.log
存的是规范输入err.log
存的是谬误输入
案例剖析
> ls rumenz.txt 1.txt > out.txt ls: 1.txt: No such file or directory > cat out.txt rumenz.txt
因为只重定向了规范输入,所以
out.txt
文件只有规范输入
> ls rumenz.txt 1.txt > out.log 1>&2 ls: cannot access 1.txt: No such file or directory rumenz.txt > cat out.log
> out.log
将规范输入重定向到文件,然而1>&2
将规范输入重定向到了谬误输入,所以out.log
外面什么也没有.
> ls rumenz.txt 1.txt > out.txt 2>&1 > cat out.txt ls: cannot access 1.txt: No such file or directory rumenz.txt
> out.log
将规范输入重定向到文件,然而2>&1
将谬误输入重定向到规范输入,所以out.log
外面既有失常的输入也有谬误的输入.
/dev/null
/dev/null
:示意 的是一个黑洞,通常用于抛弃不须要的数据输入, 或者用于输出流的空文件
> rm -f $(find / -name rumenz) &> /dev/null
原文链接:https://rumenz.com/rumenbiji/…
微信公众号:入门小站
【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。