文件描述符
①文件描述符是与文件输入、输出关联的整数。它们用来跟踪已打开的文件。最常见的文件描述符是stidin、stdout、和stderr。我们可以将某个文件描述符的内容重定向到另外一个文件描述符中。
②文件描述符我们常见的就是系统预留的0,1和2这三个,他们的意义分别有如下对应关系:
- 0 ---- stdin(标准输入)
- 1 ---- stdout (标准输出)
- 2 ---- stderr (标准错误)
③举例
标准输出(1----stdout)
错误输出(2---stderr)
输出重定向
①重定向操作,其实就是通过在shell命令后面追加一个重定向操作符号,将shell命令对应的文件描述符输出的文本信息重新输入到另外一个指定文件的操作。
②输出重定向的使用方式很简单,基本的一些命令如下:
③我们使用>或者>>对输出进行重定向。符号的左边表示文件描述符,如果没有的话表示1,也就是标准输出,符号的右边可以是一个文件,也可以是一个输出设备。当使用>时,会判断右边的文件存不存在,如果存在的话就先删除,然后创建一个新的文件,不存在的话则直接创建。但是当使用>>进行追加时,则不会删除原来已经存在的文件。
④举例:
重定向标准输出stdout
重定向标准错误stderr
输入重定向
输入重定向的基本命令如下:
Linux特殊文件
①/dev/null是一个特殊的设备文件,这个文件接收到的任何数据都会被丢弃。因此,null这个设备通常也被成为位桶(bit bucket)或黑洞。
②简单地理解就是,重定向操作给这个/dev/null文件的所有东西都会被丢弃。
③1>dev/null:作用是将标准输出1重定向到/dev/null中。那么执行了1>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。
④2>/dev/null:作用是把错误输出2重定向到/dev/null中。也就是说如果你的命令出错的话,错误报告直接就删除了,不会显示在屏幕上。但是标准输出会显示在屏幕上。
⑤1 > /dev/null 2>&1:这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,其实就是错误输出将会和标准输出输出到同一个地方。
⑥另外,可以使用: cat 文件名 > /dev/null
实例
使用以下命令寻找文件,当找不到对应文件时会回显错误信息到屏幕来,虽然最后需要的文件找了,但是由于屏幕回显的错误信息过多,导致我们无法看清需要的文件。
这时候我们就可以使用2>/dev/null
这个选项了,把错误信息重定向到黑洞中,只留下正确的信息回显,这时候我们就能快速而准确的找到我们需要的文件。