文件描述符是和文件的输入、输出相关联的非负整数,Linux内核(kernel
)利用文件描述符(file descriptor
)来访问文件。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。常见的文件描述符是stdin、stdout和stderr。
系统预留文件描述符号
-
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 <<EOF>my.txt
> This a text line1
> This a text line2
> This a text line3
> EOF
在cat <<EOF>my.txt
与下一个EOF行之间的所有文本都会当作stdin数据输入到my.txt
中。
网友评论