📜  Linux输出重定向

📅  最后修改于: 2020-12-08 03:12:25             🧑  作者: Mango

Linux输出重定向

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

>标准输出

标准输出使用大于符号的“>”重定向。当shell遇到'>'符号时,它将清除文件(您已经知道)。

例:

echo Hello everyone. > afile.txt 

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

输出文件被删除

在输出重定向中,在扫描命令行期间,shell将通过'>'符号遇到并清除文件。

例:

zcho Welcome > afile.txt

查看上面的快照,命令“ zcho Welcome> afile.txt”是错误的,但仍然清除了文件“ afile.txt”。

夜尿

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

句法:

set -o noclobber    (To prevent overwrite)
set +o noclobber    (To overwrite)

例:

echo Learn Linux. > newfile.txt

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

但是命令“ set + o noclobber”允许您覆盖现有文件。

否决夜尿

否决noclobber意味着您可以在使用'> |'设置noclobber的情况下覆盖现有文件标志。

句法:

command >| 

例:

echo Welcome to JavaTpoint. >| newfile.txt

查看上面的快照,并使用大于“>”的符号,bash不允许覆盖文件“ newfile.txt”。但是用'> |'签名文件被覆盖。

>>追加

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

句法:

command >> 

例:

echo You all are welcome here. >> newfile.txt

查看上面的快照,文件“ newfile.txt”没有被附加命令覆盖。新内容随旧内容一起显示。