>假设我有一个名为"file1"的文件。我想在 Unix 中使用 cat
命令显示"file1"的内容。
cat file1
和cat < file1
的工作方式类似。它们之间有什么区别?
这是输入的来源。
- 如果你说
cat file1
外壳不会做任何特别的事情。cat
调用open(2)
文件并从中读取 - 如果你说
cat < file1
shell 调用文件上的open(2)
,并将dup(2)
调用到STDIN_FILENO
进行cat
。cat
只是从STDIN_FILENO
中读取
我们可以使用另一个命令来注意以下两者之间的区别:
wc –w food2.txt
可能的输出:
6 food2.txt
该命令告诉文件名,因为它知道它(作为参数传递)。
wc –w < food2.txt
可能的输出:
6
标准输入被重定向到文件 food2.txt而命令不知道它。
>cat
打开一个文件,cat > fileName
告诉 shell 在 cat 标准输入中打开文件。
这是包含更多详细信息/答案的链接:https://unix.stackexchange.com/questions/258931/difference-between-cat-and-cat