文件描述符
可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。
当Linux启动的时候会默认打开三个文件描述符,分别是:
标准输入 standard input 0 (默认设备键盘)
标准输出 standard output 1(默认设备显示器)
错误输出 error output 2(默认设备显示器)
一条命令执行以前先会按照默认的情况进行绑定(也就是上面所说的 0,1,2),如果我们有时候需要让输出不显示在显示器上,而是输出到文件或者其他设备,那我们就需要重定向。
重定向主要分为两种(其他复杂的都是从这两种衍生而来的):
(1)输入重定向 < <<
(2)输出重定向 > >>
< 是对标准输入 0 重定向 ,> 是对标准输出 1 重定向
输入输出操作都是依赖文件描述符实现的,重定向输入输出本质上就是重定向文件描述符
1.输入重定向
格式: [n]< word (注意[n]与<之间没有空格)
说明:将文件描述符 n 重定向到 word 指代的文件(以只读方式打开),如果n省略就是0(标准输入)
cat 0< file 重定向到file 即从哪里输入
2.输出重定向
[n]> word,将文件描述符 n 重定向到word 指代的文件(以写的方式打开),如果n 省略则默认就是 1(标准输出) 即输出到哪里去
3.标准输出与标准错误输出重定向
格式: &> word >& word
说明:将标准输出与标准错误输出都定向到word代表的文件(以写的方式打开),两种格式意义完全相同,这种格式完全等价于 > word 2>&1 (2>&1 是将标准错误输出复制到标准输出,&是为了区分文件1和文件描述符1的)