linux 下重定向的一些认识

待续


linux标准文件描述符:

文件描述符缩写描述
0STDIN标准输入
1STDOUT标准输出
2STDERR标准错误

标准输入和标准输出指的就是键盘和显示器。

当文件描述符(0,1,2)与重定向符号(<)组合之后,就可以重新定向输入,输出,及错误。


重定向的一些写法:

1. >  默认为 1>  。 如 ls  xx  > filename ,那么  标准输出重定向到  filename 文件中,filename 开始如果不存在就会新建,若原来就有filename则删除原有的内容,重新写入。

2.  &> 和 >& 比较。如,ls   xx  yy   &>  filename  会把 标准输出和标准错误输出都重定向到filename中;又如 ls xx  yy  >& filename  同样也会 把 标准输出和标准错误输出都重定向到filename中,似乎没有什么区别,如果有什么 不同告诉我一下。

3. >&1 ,>&2,>1,>2  比较。如,ls xx  yy  >&1 输出重定向到标准输出。系统默认好像也是这个; ls xx yy >1 不会重定向到标准输出,而是会在当前目录下新建文件1,把输出内容定向到1中,也就是 有没有&这个符号,代表着是不是输出到标准输出还是输出到新建文件。>&2和>2与前面的分析相似。

4. 1&> filename ,2&>filenam比较. ls  xx yy  1&>filename 这种表示法会把1当做一个目录下的文件而不是代表标准输出,也就是bash 会这么认为 ls xx yy 1  & >filename 这种形式。2&>filename 和 1&>filename一样。

5.1&2>filename  ,  >1&2 ,这中 并不代表把标准输出和标准错误输出重定向到filename ,也不是代表内容 重定向到 标准输出和标准错误输出,这中用法 算是不正确的用法吧。

另外一个非常有用的重定向操作符是 "-",请看下面这个例子:
 

$ (cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xvfp -)

该命令表示把 /source/directory 目录下的所有文件通过压缩和解压,快速的全部移动到 /dest/directory 目录下去,这个命令在 /source/directory 和 /dest/directory 不处在同一个文件系统下时将显示出特别的优势。

另外,几种不常见的用法:
 

n<&- 表示将 n 号输入关闭
<&- 表示关闭标准输入(键盘)
n>&- 表示将 n 号输出关闭
>&- 表示将标准输出关闭
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值