文件描述符
Linux 系统预留可三个文件描述符:0、1 和 2,他们的意义如下所示:
- 0——标准输入(stdin)
- 1——标准输出(stdout)
- 2——标准错误(stderr)
标准输出——stdout
假设:在当前目录下,有且只有一个文件名称为 123.txt 的文件,这时我们运行这个命令 ls 123.txt
,就会获得一个标准输出 stdout 的输出结果:123.txt
错误输出——stderr
按照上面的假设,我们运行另一条命令 ls abc.txt
,这样我们就会获得一个标准错误 stderr 的输出结果 ls:无法访问abc.txt:没有那个文件或目录
。
重定向
重定向的符号有两个:> 或 >>,两者的区别是:前者会先清空文件,然后再写入内容,后者会将重定向的内容追加到现有文件的尾部。
Linux 特殊文件
/dev/null
是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃。因此,null 这个设备通常也被称为位桶(bit bucket)或黑洞。
find 路径 -name 文件名 2>/dev/null
: 过滤掉没有查看权限的文件