免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4027 | 回复: 10

新手问一下重定向,& 什么意思? [复制链接]

论坛徽章:
0
发表于 2011-04-28 00:28 |显示全部楼层
eg:
     ls -l  > test1            #ls -l 内容输出重定向到test1文件
等于:ls -l 1> test1

我想问: command > test2  2 > &1 #标准输出标准输入都重定向到文件test2
                command  2>&1 >test2 #标准出错重定向到终端,标准输出重定向到文件test2
上面的这两条命令的区别我知道,我想问 “&” ,什么意思呢 ?

可以理解成 &n ,n是文件描述符,那&n 就差不多是代表这个文件,例如: int fd = open("~/test3", ...)  , 那&fd 就是~/test3  了吗?

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
发表于 2011-04-28 01:11 |显示全部楼层

论坛徽章:
0
发表于 2011-04-28 19:50 |显示全部楼层
回复 2# yinyuemi


    没有我问的问题的答案~

论坛徽章:
0
发表于 2011-04-28 20:34 |显示全部楼层
全部的意思

论坛徽章:
0
发表于 2011-04-28 21:53 |显示全部楼层
回复  yinyuemi


    没有我问的问题的答案~
ljsdaya 发表于 2011-04-28 19:50



    你到底仔细看了没有?
    这篇文章的每句话都表达出了你想要的答案,你居然说没有答案???
    哎,真是苦了SS兄了,,,

论坛徽章:
0
发表于 2011-04-28 22:24 |显示全部楼层
回复 5# xiaopan3322


    我看啦,是不是因为我笨呢?我看了2次,刚刚我又去看一次啦。。。
我是想问,不知道你有无看清楚我想问什么~~~
  2>&1   ,,,我是想知道&起了什么作用, 干嘛不可以直接:2>1   , , ,如果重定向到文件,就可以 1 > a.out

论坛徽章:
0
发表于 2011-04-28 22:25 |显示全部楼层
回复 5# xiaopan3322


    当然感谢ss,这篇文章很详细,基本都懂~

论坛徽章:
0
发表于 2011-04-28 22:45 |显示全部楼层
回复  xiaopan3322


    我看啦,是不是因为我笨呢?我看了2次,刚刚我又去看一次啦。。。
我是想问, ...
ljsdaya 发表于 2011-04-28 22:24


    我眼睛不好……
    我本来不打算回答了,太月经了,不过你这么说,我还是回一下吧:

-------------
2>&1:
-------------
0 is stdin. 1 is stdout. 2 is stderr
-------------
There's one way to remember this construct (maybe it is not entirely accurate):
-------------
First of all, 2>1 looks like a very good way to redirect stderr to stdout. but remember, it has a very harmful disadvantage: it may actually be interpreted as "redirect stderr to a file named 1".
-------------
& indicates that what follows is a file descriptor and not a filename. So the construct becomes: 2>&1.
-------------
>& is shell syntax for "fold a file descriptor into another", you can also interprete it as "it is the syntax to redirect a stream to another file descriptor"
-------------

    Got it???

论坛徽章:
0
发表于 2011-04-28 23:28 |显示全部楼层
回复 8# xiaopan3322


    Got it! thank you!
Everything is for my fool.
“可以理解成 &n ,n是文件描述符,那&n 就差不多是代表这个文件,例如: int fd = open("~/test3", ...)  , 那&fd 就是~/test3  了吗?” 那我起初的理解应该是这个意思吧,&后面是接文件描述符,
例如&0 就相当于 /dev/tty  ~唉,貌似我说得也没错吧,怪我是新手~~~莫气~
别激动别激动,女人嘛,月经每个月都有的,不要烦~

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
发表于 2011-04-29 03:34 |显示全部楼层
回复  xiaopan3322


    我看啦,是不是因为我笨呢?我看了2次,刚刚我又去看一次啦。。。
我是想问, ...
ljsdaya 发表于 2011-04-28 22:24



    如果这么写' 2>1 1>out.file'
第一个“1”就不代表标准输出了,而是文件名1,即标准错误输出到文件1中,标准输出到out.file中
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP