📅  最后修改于: 2020-12-08 03:12:25             🧑  作者: Mango
输出重定向用于将一个命令的输出放入文件或另一命令。
标准输出使用大于符号的“>”重定向。当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”没有被附加命令覆盖。新内容随旧内容一起显示。