假设我有一个名为temp.txt
.使用该cat
程序,我想将此文件的内容添加到--如果不存在则 myfile.txt
创建,如果存在则追加到它的末尾。myfile.txt
我正在考虑这些可能性:
cat temp.txt > myfile.txt
或者
cat temp.txt >> myfile.txt
这两个命令似乎都按我想要的方式工作。所以,我的问题是,>
和之间有什么区别>>
?谢谢你的时间。
答案1
>
写入文件,覆盖任何现有内容。>>
附加到文件。
从man bash
:
重定向输出
输出重定向会导致打开名称由字扩展产生的文件,以便在文件描述符 n 上写入,如果未指定 n,则打开标准输出(文件描述符 1)。如果文件不存在则创建;如果它确实存在,它将被截断为零大小。
重定向输出的一般格式是:
[n]>word
如果重定向操作符为 >,并且已启用内置命令 set 的 noclobber 选项,则如果由 word 扩展而得名的文件存在且是常规文件,则重定向将失败。如果重定向操作符为 >|,或者重定向操作符为 > 且未启用内置命令 set 的 noclobber 选项,则即使 word 命名的文件存在,也会尝试重定向。
附加重定向输出
以这种方式重定向输出会导致打开名称由单词扩展产生的文件,以便附加到文件描述符 n 上,或者如果未指定 n 则附加到标准输出(文件描述符 1)。如果该文件不存在,则会创建该文件。
附加输出的一般格式是:
[n]>>word
答案2
如果是例如>
。cat abc.txt > pqr.txt
的内容pqr.txt
将被替换为abc.txt
如果是例如>>
。cat abc.txt >> pqr.txt
的内容abc.txt
将附在pqr.txt
最后。