Unix 什么';s cat文件和cat之间的差异<;文件
我的理解是命令Unix 什么';s cat文件和cat之间的差异<;文件,unix,Unix,我的理解是命令 cat file cat < file1.txt 将显示文件和的内容 cat < file cat
cat file
cat < file1.txt
将显示文件和的内容
cat < file
cat
将文件的内容作为输入。我尝试了一下,创建了两个文件。一个名为file1.txt,另一个名为file2.txt。在file1.txt中,我编写了file2.txt,因此通过键入命令
cat file
cat < file1.txt
cat
,我希望显示file2.txt的内容;然而,两者
cat file1.txt和cat
正在显示file1.txt的内容。我想我误解了的定义,如果传递一个或多个文件名,
cat
将显示这些文件的内容。否则,它将打印在stdin上传递的任何内容
cat file
cat
接收一个文件名,打开文件并打印其内容
cat < file
cat
shell将stdin重定向到命名文件:它打开文件并将其内容提供给stdin上的cat
<代码>cat不接收任何参数。如果没有参数,它将打印文件内容中stdin上的任何内容
净结果:
cat文件
和cat
执行相同的操作。当cat
与参数文件一起运行时,它将打开并从每个文件读取标准输出。因此,使用cat file1.txt
,cat
打开file1.txt
,并将其内容打印到标准输出:
$ cat file1.txt
file2.txt
当
cat
在没有参数文件的情况下运行时,它将从标准输入中读取(例如,就像您直接键入cat一样)并写入标准输出。但是
告诉shell(例如bash)打开文件file1.txt
,并通过标准输入将其重定向到cat
:
$ cat < file1.txt
file2.txt
让我们从它的根来看
cat
的概念,比如从plan9(进化的根):
cat
不涉及管道。输入文件被重定向,而不是管道传输<在此结构中,code>cat可以在stdin上搜索,而如果输入是管道,则搜索将失败。请参阅此处的答案:
while((n=read(f, buf, (long)sizeof buf))>0)
if(write(1, buf, n)!=n)