shell 重定向总结

首先明白两个操作符的含义

>  表示重定向时,覆盖原有内容,是从头开始

>> 表示重定向时,是从最后开始追加,不覆盖原有内容

简单的重定向,将file1.txt 的内容导入到file2.txt,也就是说如果file2.txt不为空,就把file2.txt中的内容给覆盖掉

$ cat file1.txt > file2.txt

向set.conf,追加内容,把file1.txt中的内容,添加到set.conf的末尾

$cat file1.txt  >> set.conf

 

然后是经常看到的重定向玩法

先理解空设备   /dev/null,表示什么都没有,可以理解为linux系统的一个“黑洞”,任何内容到这个空设备“黑洞”,就全部丢弃了,找不到了。

下面是个人总结:

/dev/null 2>&1

这条命令其实分为两命令,一个是>/dev/null,另一个是2>&1。
/dev/null
这条命令的作用是将标准输出1重定向到/dev/null中。/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。
2>&1
这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。


">/dev/null" 等同于 "1>/dev/null" .
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1

1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。

2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

 

linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值