文件描述符和重定向

文件描述符:
是与文件输入、输出相关的整数;
是与一个打开的文件或者数据流相关的整数

系统预留的文件描述符:

  • 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 追加内容

文件描述符是用于访问文件的一个抽象指针

  1. 读取一个文件创建一个文件描述符
    exec 3<input.txt # 使用文件描述符3打开并读取文件
  2. 写入内容,截断模式
    exec 4>output.txt
  3. 写入内容,追加模式
    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
原文地址:https://www.cnblogs.com/persisit/p/14584785.html