所以我认为Linux中的“cat”实际上将文件连接成2块内存(希望如此)。我担心的是Windows中的“type”命令,从我认为它可以读取和写入文件的名称判断到新文件。我不知道如果这样做会花多少时间。
这就是它的使用方式(就像cat将两个文件合并到out文件中):
输入file_name1.txt file_name2.txt>> out.txt
答案 0 :(得分:0)
没有。 Linux中的cat
通过读取命令行中的所有文件并将其写入标准输出来工作。如果命令行为空,它将读取标准输入。
所以当你跑:
cat file1 file2 >> file3
它会显示file1
并将其写入stdout
。完成后,它会显示file2
并将其写入stdout
。但是,啊!,shell已重定向stdout
以附加到file3
,因此这是写两个文件的位置。
Windows中的type
基本相同,只是命令行不能为空(为此你可以使用copy CON
)。
现在,Linux中的cat
命令可能会进行一些优化,以避免在内存中存储过多的数据副本,例如splice(2)
,但这应该被视为可选的优化。
答案 1 :(得分:0)
与Linux cat一样,Windows cmd.exe shell type命令将读取这两个文件并将它们写入stdout。
与Linux cat不同,它将通过stderr添加文件头。如果您想要相同的效果,请务必重定向stderr。
type file1.txt file2.txt 2>NUL
而且,如果你想重定向stdout,一定要这样做 - 在重定向stderr之前。
type file1.txt file2.txt >newfile.txt 2>NUL