一、Linux中 > 与 >> 的含义
> 覆盖 和 >> 追加
1)基本语法
(1)ll >文件 1 (功能描述:列表的内容写入文件1中(覆盖写))
(2)ll >>文件2 (功能描述:列表的内容追加到文件2的末尾)
(3)cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
(4)echo “内容” >> 文件
< :由 < 的右边读入参数档案;
> :将原本由屏幕输出的正确数据输出到 > 右边的 file ( 文件名称 ) 或 device ( 装置,如 printer )去;
>> :将原本由屏幕输出的正确数据输出到 >> 右边,与 > 不同的是,该档案将不会被覆盖,而新的数据将以『增加的方式』增加到该档案的最后面;
2> :将原本应该由屏幕输出的错误数据输出到 2> 的右边去。
/dev/null :可以说成是黑洞装置!
2) Linux中文件描述符
Linux系统预留可三个文件描述符:0、1和2,他们的意义如下所示:
0——标准输入(stdin)
1——标准输出(stdout)
2——标准错误(stderr)
从键盘获得输入 /proc/self/fd/0
输出到控制台 /proc/self/fd/1
输出到控制台 /proc/self/fd/2
二、2>/dev/null >/dev/null 2>&1 2>&1>/dev/null 区别
command | 标准输出(1) | 错误输出(2) |
>/dev/null 2>&1 | 不显示 | 不显示 |
2>&1 >/dev/null | 不显示 | 显示 |
/dev/null 可以称为黑洞,是一个只写文件,抛弃一切写入其中的数据
2>/dev/null => 把错误输出到“黑洞”
>/dev/null 2>&1 前面省略了标准输出1,原型 1>/dev/null 2>&1
==> 标准输出重定向到 /dev/null,错误输出重定向到标准输出,前面标准输出已重定向到 /dev/null,所以标准输出/错误输出都重定向到 /dev/null, 输出到黑洞
2>&1 >/dev/null 原型 2>&1 1>/dev/null => 错误输出重定向到标准输出(控制台),标准输出重定向到 /dev/null