/dev/null 代表空设备文件,它等价于一个仅仅写文件,全部写入它的内容都会永远丢失。而尝试从它那儿读取内容则什么也读不到。
0:表示键盘输入(stdin)
1:表示标准输出(stdout),系统默认是1
2:表示错误输出(stderr)
1>/dev/null等同于 >/dev/null
>/dev/null 2>/dev/null 等同于 >/dev/null 2>&1
&1:&表示等同于的意思,2>&1,表示2的输出重定向等于1
举例
cat $filename >/dev/null 2>/dev/null 等同于 cat $filename >/dev/null 2>&1
# 假设"$filename"不存在。将不会有不论什么错误信息提示.
# 假设"$filename"存在, 文件的内容不会打印到标准输出.
# 因此, 上面的代码根本不会输出不论什么信息.
常见场景
在我们定义crontab时。为了避免垃圾数据的产生,经经常使用到 >/dev/null 2>&1
cat $filename >/dev/null 2>/dev/null 等同于 cat $filename >/dev/null 2>&1
# 假设"$filename"不存在。将不会有不论什么错误信息提示.
# 假设"$filename"存在, 文件的内容不会打印到标准输出.
# 因此, 上面的代码根本不会输出不论什么信息.
常见场景
在我们定义crontab时。为了避免垃圾数据的产生,经经常使用到 >/dev/null 2>&1