你如何記住 2>&1 重定向的語法

你如何記住 2>&1 重定向的語法

你有助記詞或系統嗎?這困擾了我很多年,我總是要檢查一下

答案1

如果您是 C 程式設計師,您可以將其視為&1“1 的位址”,因此2>&1讀取“將檔案描述符 #2 重新導向到與 #1 相同的位置”。

答案2

“二對一”(「存在」>)對我來說比「二加一」更符合邏輯,我通常會把它與「二加一」混淆。如果您將“and one”視為單一名詞(一個地方),那麼它在上下文中也具有語法意義,而“Two and to one”則更難做到這一點- 您必須將“to one”視為單一名詞名詞,但它仍然沒有上下文意義。

答案3

不是助記符,但我讀如下:

0是標準輸入。 1是標準輸出。 2是標準錯誤。 >是進入。 <已出。 &是檔案描述符(在某些 shell 中)。

2>&1
2      >    &               1
stderr into file descriptor 1

redirect stderr into stdout

如果您在重定向之前弄亂了任何檔案描述符,它可能會改變...

2>somefile 1>&2
2      >    somefile     1      >    &2
stderr into somefile and stdout into file descriptor 2

redirect stderr into somefile and stdout into somefile. 

答案4

我記得它總是 2 -> 1. Stderr 到 stdout。

中間部分總是很難,我總是把它搞砸,直到我想起首先是尖銳的角色>,然後是我在現實生活中寫不出來的角色&

所以從來沒有2&>1,總是2>&1

相關內容