> 和 >> 之间有什么区别(特别是与 cat 程序一起使用时)?

> 和 >> 之间有什么区别(特别是与 cat 程序一起使用时)?

假设我有一个名为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最后。

相关内容