/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
/dev/null在Linux中代表一个特殊的空设备文件,所有写入它的内容都将丢失。本文详细介绍了标准输入、标准输出及错误输出的概念,并通过实例展示了如何使用重定向来忽略不需要的输出,这对于设置cron任务特别有用。
3292

被折叠的 条评论
为什么被折叠?



