文件描述符:
是与文件输入、输出相关的整数;
是与一个打开的文件或者数据流相关的整数
系统预留的文件描述符:
- 0 ------- stdin 标准输入
- 1 ------- stdout 标准输出
- 2 ------- stderr 标准错误
自定义文件描述符:
cmd 2> stderr.txt 1>stdout.txt
cmd output.txt 2>&1 或者 cmd &> output.txt
当不关注错误输出时,2>/dev/null
/dev/null : 位桶(bit bucket)或者黑洞
命令tee
即可以重定向到文件,又可提供一份副本作为管道后续的stdin命令:tree
cat a* | tee out.txt | cat -n
tee 只能从stdout中进行读取,即它不读区stderr
tee -a out.txt -a append 追加内容
文件描述符是用于访问文件的一个抽象指针
- 读取一个文件创建一个文件描述符
exec 3<input.txt # 使用文件描述符3打开并读取文件 - 写入内容,截断模式
exec 4>output.txt - 写入内容,追加模式
exec 5>>output.txt
echo this is a test line > input.txt
exec 3<input.txt
cat <&3
exec 4>output.txt
echo newline >&4
cat output.txt
exec 5>>output.txt
echo append line >&5
cat output.txt