2013-08-22 38 views
3

我學習linux的cat命令,我發現這個命令:這個linux命令中的「 - 」是什麼意思?

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

什麼是「 - 」這裏的意思?如果我沒有輸入它,那麼'通過標準輸入文本'將不會顯示。

+0

可能重複的[是「 - 」意味着標準輸出在bash?](http://stackoverflow.com/questions/3797795/does-mean-stdout-in-bash)(無可否認stdin /標準輸出,取決於上下文...) – Bruno

回答

5

通常將stdin記爲短劃線(-)。

甚至man cat提到:

沒有FILE,或者FILE是 - ,讀取標準輸入。

和手冊頁甚至有說明使用破折號和普通文件名的例子(這是相當接近你原來的問題,但包括答案):

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

認識到'stdin'被讀取後文件'file.txt'將被顯示是很重要的。 –

+0

@PP。對,我在manpage中添加了兩行(順便說一句,他們是在我原來的引用之後出現的),應該明確這一點。 –

3

-講述了一隻貓從讀標準輸入。如果你通過-給他們,很多應用程序從標準輸入讀取這是很常見的。

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

-告訴cat從標準輸入讀取,在這種情況下,從管道中,即,什麼echo 'Text through stdin'輸出。

相關問題