• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Linux中Shell重定向

linux 搞代码 3年前 (2022-03-03) 20次浏览 已收录 0个评论

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。

在shell脚本中,默认状况下,总是有三个文件处于关上状态,规范输出(键盘输入)、规范输入(输入到屏幕)、规范谬误(也是输入到屏幕),它们别离对应的文件描述符是 0,1,2 。

  • & 是一个描述符,如果1或2前不加&,会被当成一个一般文件。
  • > 默认为规范输入重定向,与 1> 雷同
  • 1>&2 意思是把规范输入重定向到规范谬误.
  • 2>&1 意思是把规范谬误输入重定向到规范输入。
  • &>filename 意思是把规范输入和规范谬误输入都重定向到文件filename中.
  • >&21>&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」 自取。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Linux中Shell重定向

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址