为了账号安全,请及时绑定邮箱和手机立即绑定

linux 命令中 > >>的区别?

linux 命令中 > >>的区别?

杨__羊羊 2018-07-11 17:14:12
linux 命令中 > >>的区别?
查看完整描述

2 回答

?
达令说

TA贡献1821条经验 获得超6个赞

二者都是Linux系统的输出重定向符号

">" 是输出到文件中, 如果文件存在, 则原来的内容被清空, 不存在则创建文件, 比如

ls > filelist.txt

">>"是把输出追加到文件中, 如果文件存在, 追加到末尾, 不存在则创建文件
格式:
command-line1 [1-n] > file或文件操作符或设备
上面命令意思是:将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的) 重定向其它输出设备(文件,打开文件操作符,或打印机等等)1,2分别是标准输出,错误输出。
注意:
1、shell遇到”>”操作符,会判断右边文件是否存在,如果存在就先删除,并且创建新文件。不存在直接创建。 无论左边命令执行是否成功。右边文件都会变为空。
2、“>>”操作符,判断右边文件,如果不存在,先创建。以添加方式打开文件,会分配一个文件描述符[不特别指定,默认为1,2]然后,与左边的标准输出(1)或错误输出(2) 绑定。
3、当命令:执行完,绑定文件的描述符也自动失效。0,1,2又会空闲。
4、一条命令启动,命令的输入,正确输出,错误输出,默认分别绑定0,1,2文件描述符。
5、一条命令在执行前,先会检查输出是否正确,如果输出设备错误,将不会进行命令执行

查看完整回答
反对 回复 2018-07-17
?
森栏

TA贡献1810条经验 获得超5个赞

>与>>都用来重定向输出,不同的是>将覆盖原有内容,而>>则会追加内容。例如:ls -l / > 123.txt 将会列出/目录下的所有文件(目录)并将输出结果保存至123.txt中,如果123.txt里有内容456,那么这个456将会被覆盖掉,而如果使用>>则这个456还会存在,命令的输出结果保存至新的一行。

查看完整回答
反对 回复 2018-07-17
  • 2 回答
  • 0 关注
  • 404 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信