Windows命令类型如何工作

时间:2017-07-12 17:00:33

标签: linux windows cmd command

所以我认为Linux中的“cat”实际上将文件连接成2块内存(希望如此)。我担心的是Windows中的“type”命令,从我认为它可以读取和写入文件的名称判断到新文件。我不知道如果这样做会花多少时间。

这就是它的使用方式(就像cat将两个文件合并到out文件中):

  

输入file_name1.txt file_name2.txt>> out.txt

2 个答案:

答案 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