本文概述
输出重定向用于将一个命令的输出放入文件或另一命令。
>标准输出
标准输出使用大于符号的”>”重定向。当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 >| <fileName>
例:
echo Welcome to srcmini. >| newfile.txt
查看上面的快照, 并带有大于”>”的符号, bash不允许覆盖文件” newfile.txt”。但是用’> |’签名文件被覆盖。
>>追加
附加” >>”符号不会覆盖文件内容, 因此会显示新旧文件内容。
句法:
command >> <fileName>
例:
echo You all are welcome here. >> newfile.txt
看上面的快照, 文件” newfile.txt”没有被附加命令覆盖。新内容随旧内容一起显示。
评论前必须登录!
注册