您的位置:首页 > 运维架构 > Linux

Linux 输出重定向>和>>

2017-05-31 15:59 344 查看
> 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用`>`,将日志文件清空(文件大小变成0字节)。

>> 这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。(摘自:https://zhidao.baidu.com/question/274680094.html

例如我们要将一个文件夹的内容保存到文本文件中去,也就是将ls命令打印出来的内容都写到文本中去可以这样:

ls -al >> a.txt

这样a.txt文件中就是ls命令打印出来的内容了。

另外解释一下命令 “ls  >/dev/null  2>&1

按照前面的解释可以知道将ls程序运行输出的结果重定向到/dev/null文件中去,后面的2 > &1有是什么意思呢?

这里有必要将上面的这个命令完整形式写出来:

ls  1 >/dev/null  2>&1

可以看出和原来命令的区别。先来说明一下,Linux系统中

0:表示键盘输入(stdin)

1:表示标准输出(stdout),系统默认是1 

2:表示错误输出(stderr)

所以1 > /dev/null 表示将1(标准输出)重定向到/dev/null文件,将2(标准错误输出)重定向到1。2>&1表示的是2的输出重定向等同于1 的输出重定向,也就是/dev/null文件。如果写成这种形式:

ls  1 >/dev/null  2>1

其实也能实现标准错误输出的重定向,但是重定向的位置不是标准输出,而是文件“1”,系统会创建一个文件“1”然后保存标准错误输出的信息。

大神/dev/null
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: