我是Linux初學者,我有一個關於重定向STDOUT和STDERR的問題。'2>&1'和'&>文件名'之間的區別
創建
file1
添加一些字符串echo hello > file1
在此之後,當我做這樣的事情
cat file1 file2
它會給這樣的錯誤
hello cat: file2: No such file or directory
我想要重定向輸出和錯誤,所以
cat file1 file2 > file3 2>&1 | cat hello cat: file2: No such file or directory
我知道
|
可以使用一個命令的輸出作爲輸入,對不對? 所以第一cat
的輸出是:hello cat: file2: No such file or directory
現在,我找到另一種方法來重定向輸出,如:
cat file1 file2 &> file3 cat file3 hello cat: file2: No such file or directory
它可以做同樣的事情,但是當我添加
|cat
,結果是cat file1 file2 &> file3 | cat hello
STDERR在哪裏?這意味着只有
hello
是第一個cat
的輸出?
2>&1
和&>file
有什麼區別?
您確定'cat file1 file2&> file3 |貓'產生輸出?它不應該。 – 2015-04-03 03:47:03
兩者在語義上相同。 – 2015-04-03 04:16:23