Linux-谁能清楚的讲讲联合符号&的作用

发布于 2016-12-16 14:23:50 字数 128 浏览 1318 评论 2

cat >test2 1&2 <test1 标准输出和错误输出都到test2文件中
cat 1&2 >test2 <test1 标准输出到屏幕,错误输出到test2文件中
为什么啊?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灵芸 2017-09-16 06:43:52

& 表示后台运行,例如:“ls &” 表示在后台运行ls命令:

&& 表示前者执行成功,执行后台命令,例如:“ls && ll”:

想挽留 2017-06-13 23:31:00

根据你提供的命令和解释,推测在 & 符号旁边缺少了一个大于号 单纯的 & 会将前面输入的命令挂起,这一点可完全不会现出lz所述的结论哦~
如果我说错了,那就不用接着看下文了。
首先,关于文件描述符注意这么一个概念,默认的数字中,0 表示标准输入(键盘),1 表示标准输出(终端屏幕),2 为标准错误输出(终端屏幕)

然后说明一下重定向,意思就是把默认IO流进行重新定向

原第一条命令应该是

cat > test2 1>&2 < test1

cat > test2 表示将原来 标准输出 重定向 到 test2 文件
1>&2 表示将 标准输出 重定向 到 标准错误输出,原来的 标准错误输出保留
< test1 意思是将 test1 的文件内容作为 标准输出 放到该命令中

整理一下: test1 的内容输出到 test2,test1 的文件内容和错误输出还会输出到屏幕上

有了上面的分析,不难懂第二个命令了
原第二条命令应为:

cat 1>&2 > test2 < test1

先将标准输出 重定向 到标准错误输出,然后修改 标准输出 到 test2,由 test1 提供源
效果是:test1 的内容被放到了 test2 里面,出错了还是显示到屏幕上

推荐你一个视频教程
http://v.youku.com/v_show/id_XNDgxMzE1MTcy.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文