cat file2 >> file1
>> 运算符将输出附加到指定文件,或者如果它不存在则创建指定文件 .
cat file1 file2 > file3
这将两个或多个文件连接到一个文件 . 您可以根据需要拥有尽可能多的源文件 . 例如,
cat *.txt >> newfile.txt
Update 20130902
在评论中,eumiro建议“不要试试 cat file1 file2 > file1 ” . 这可能不会导致预期结果的原因是接收重定向的文件是在执行 > 左侧的命令之前准备的 . 在这种情况下,首先将 file1 截断为零长度并打开输出,然后 cat 命令尝试将现在为零长度的文件加上 file2 的内容连接到 file1 . 结果是 file1 的原始内容丢失了,取而代之的是 file2 的副本,这可能不是预期的 .
Update 20160919
在评论中,tpartee建议链接到支持信息/来源 . 对于权威性的参考,我将善意的读者引导到linuxcommand.org上的sh man page,其中指出:
在执行命令之前,可以使用shell解释的特殊表示法重定向其输入和输出 .
虽然这确实告诉读者他们需要知道什么,如果你不是''t looking for it and parsing the statement word by word. The most important word here being '之前很容易错过 . 在执行命令之前,重定向已完成(或失败) .
在 cat file1 file2 > file1 的示例情况下,shell首先执行重定向,以便I / O句柄在执行命令之前执行的环境中就位 .
可以在Ian Allen的网站上以Linux课件的形式找到一个更加友好的版本,其中重定向优先级可以详细介绍 . 他的I/O Redirection Notes页面对这个主题有很多话要说,包括即使没有命令也可以进行重定向的观察 . 把它传递给shell:
$ >out
...创建一个名为out的空文件 . shell首先设置I / O重定向,然后查找命令,找不到,并完成操作 .