Linux 输出重定向

17 Mar 2025 | 阅读 2 分钟

输出重定向用于将一个命令的输出写入文件或另一个命令。

> 标准输出

标准输出用 '>' 大于号重定向。当 shell 遇到 '>' 符号时,它会清空文件(如你所知)。

示例

Linux Output Redirection1

看上面的快照,大于号 '>' 将 'echo' 命令的输出重定向到文件 'afile.txt'。

输出文件被清空

在输出重定向中,在扫描命令行时,shell 会遇到 '>' 符号并清空文件。

示例

Linux Output Redirection2

看上面的快照,命令 "zcho Welcome > afile.txt" 是错误的,但文件 'afile.txt' 仍然被清空了。

noclobber

我们可以使用 noclobber 选项来防止在 '<' 符号时删除文件。

语法

示例

Linux Output Redirection3

看上面的快照,命令 "set -o noclobber" 防止文件被覆盖。

但是命令 "set +o noclobber" 允许你覆盖现有文件。


覆盖 noclobber

覆盖 noclobber 意味着当 noclobber 设置为启用时,你可以使用 '>|' 符号来覆盖现有文件。

语法

示例

Linux Output Redirection4

看上面的快照,使用大于号 '>' 时,bash 不允许覆盖文件 'newfile.txt'。但使用 '>|' 符号时,文件被覆盖了。


>> 追加

追加 '>>' 符号不会覆盖文件内容,因此会显示新旧文件内容。

语法

示例

Linux Output Redirection5

看上面的快照,文件 'newfile.txt' 没有被追加命令覆盖。新内容与旧内容一起显示。

下一个话题Linux 错误重定向