나는 I/O 리디렉션에 익숙합니다. &>
지름길을 깨달았습니다 2>&1
. 나는 그것이 또한 작동한다고 믿습니다 >&
. 내가 모르는 뉘앙스가 있을 수 있습니다.
이를 사용할 때는 명령줄 중간에 있어야 합니다.
ls test.txt missing &> output.txt
그러나 긴 형식을 사용하는 경우 명령줄 끝에 있어야 합니다.
ls test.txt missing > output.txt 2>&1
바로가기를 맨 끝에 넣으려고 하면 오류가 발생합니다.
ls test.txt missing > output.txt &>
-bash: syntax error near unexpected token `newline'
왜 이런거야? 긴 형식 방법처럼 줄 끝이 아닌 인라인으로 사용해야 하는 바로가기가 다른 점은 무엇입니까?
답변1
semantically equivalent to >word 2>&1
그것은아니요혼자 있는 것과 마찬가지다 2>&1
. 리디렉션과 마찬가지로산출, word
(대상) 부분이 필요합니다. 2>&1
실제로는다른 통신사이며 대상 word
(여기서는 " 1
")도 필요합니다.
리디렉션은 순차적으로 적용되며 다중 리디렉션이 허용됩니다. 명령을 다음과 같이 변경할 수 있습니다.
ls test.txt missing > output.txt &>tmp.txt
&>
성과를 볼 수 있는 목적지를 제공합니다. 그것이 당신이 쓰려고 한다고 생각하는 것이고 오류는 두 번째 파일 이름을 볼 것으로 예상했지만 찾지 못했다고 말합니다.