2.文件的描述符和重定向

文件描述符是和文件的输入、输出相关联的非负整数,Linux内核(kernel)利用文件描述符(file descriptor)来访问文件。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。常见的文件描述符是stdinstdoutstderr

系统预留文件描述符号

  • 0—— 标准输入(stdin
  • 1——标准输出(stdout
  • 2——标准错误(stderr

重定向>输入文件通过截取模式报错到文件中

# echo "This is text line No1" > test.txt

注意会清空原有内容

重定向>>将输入文本通过追加模式报错到文件中

# echo "This is text line No2" >> test.txt

写入到文件之后,会追加到文件结尾。

标准错误输出

# cat linux.txt
cat: linux.txt: No such file or directory

标准错误输出重定向
方法一:

# cat linux.txt 2> out.txt //没有任何错误提示

方法二:

# cat linux.txt &> out.txt

将错误输出到特殊设备/dev/null中:

# cat linux.txt 2> /dev/null #/dev/null是一个特殊的设备文件,这个文件接受到任何数据都会被丢系,通常被称为位桶、黑洞

tee命令
tee命令可以将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。

# ls |tee  out.txt //同时输出到标准输出,并保存标准输出到文件out.txt中

Here Dcoument

# cat <my.txt
> This a text line1
> This a text line2
> This a text line3
> EOF

cat <my.txt与下一个EOF行之间的所有文本都会当作stdin数据输入到my.txt中。

你可能感兴趣的:(2.文件的描述符和重定向)