Shell

Linux Shell重定向(输入输出重定向)

2022-05-24  本文已影响0人  Gakki0725
作者:Gakki

前言
文件描述符 文件名 类型 硬件 备注
0 STDIN 标准输入文件 键盘 默认从stdin读取数据
1 STDOUT 标准输出文件 显示器 默认向stdout输出数据
2 STDERR 标准错误输出文件 显示器 向stderr流中写入错误信息
输出重定向
# 标准输出重定向 
command >file:以覆盖的方式,把 command 的正确输出结果输出到 file 文件中。
command >>file: 以追加方式,把 command 的正确输出结果输出到 file 文件中。

# 标准错误输出重定向
command 2>file:以覆盖的方式,把 command 的错误信息输出到 file 文件中。
command 2>>file:以追加的方式,把 command 的错误信息输出到 file 文件中。

# 正确输出和错误信息同时保存
command >file 2>&1:以覆盖的方式,把正确输出和错误信息同时保存到同一文件(file)中。
command >>file 2>&1:以追加的方式,把正确输出和错误信息同时保存到同一个文件(file)中。
command > file1 2>file2:以覆盖的方式,把正确的输出结果输出到 file1 文件中,把错误的信息输出到 file2 文件中。
command >>file1 2>>file2:以追加的方式,把正确的输出结果输出到 file1 文件后中,把错误的信息输出到 file2 文件中。
command >file 2>file 或 command >>file 2>>file:【不推荐】,会导致 file 打开两次,引起资源竞争,导致 stdout 和 stderr 会互相覆盖

注:

输入重定向
符号 说明
command <file 将 file 文件中的内容作为 command 的输入。
command <<tag 从标准输入(键盘)中读取数据,直到遇见分界符 tag 才停止(分界符可以是任意的字符串,用户自己定义)
command <file1 >file2 将 file1 作为 command 的输入,并将 command 的处理结果输出到 file2

注: 输入重定向的完整写法也是 fd<file ,其中 fd 表示文件描述符,如果不写,默认为 0,也就是标准输入文件。

重定向的先后顺序

注:

其他
上一篇 下一篇

猜你喜欢

热点阅读