在这个linux命令中“ - ”是什么意思?

时间:2013-08-22 13:18:50

标签: linux cat

我正在学习linux的cat命令,我找到了这个命令:

$ echo 'Text through stdin' | cat - file.txt

“ - ”在这里是什么意思?如果我不输入,则不会显示“Text through stdin”。

3 个答案:

答案 0 :(得分:9)

通常将stdin写为破折号(-)。

甚至man cat提到:

  

没有FILE,或者当FILE是 - 时,读取标准输入。

并且联机帮助页甚至有一个示例说明破折号和普通文件名的使用(这与您原来的问题非常接近,但包括答案):

   cat f - g
          Output f's contents, then standard input, then g's contents.

答案 1 :(得分:3)

-告诉cat从stdin读取。如果您将-传递给他们,很多应用程序都会从​​stdin读取这种情况。

答案 2 :(得分:2)

$ echo 'Text through stdin' | cat - file.txt

-告诉cat从标准输入读取,在这种情况下,从管道读取,即echo 'Text through stdin'输出。