![Bash 리디렉션: 파일 설명자에 추가(2>>&1)](https://linux55.com/image/120865/Bash%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98%3A%20%ED%8C%8C%EC%9D%BC%20%EC%84%A4%EB%AA%85%EC%9E%90%EC%97%90%20%EC%B6%94%EA%B0%80(2%26gt%3B%26gt%3B%26amp%3B1).png)
기존 파일에 명령 출력(stdout 및 stderr)을 추가하려고 합니다.
내가 하고 싶은 것은 이것이다:
command >>file 2>>&1
문제는 2>>&1
오류가 발생하지만 >>file 2>>file
그렇지 않다는 것입니다.
그래서 리디렉션이 어떻게 작동하는지, 파일 설명자가 무엇인지, 그 안에 들어 있는 정보가 무엇인지 잘못 이해한 것 같습니다.
요약하면 다음 두 명령의 차이점은 무엇이며 첫 번째 명령은 작동하지 않지만 두 번째 명령은 작동하는 이유는 무엇입니까?
command >>file 2>>&1 #not working
command >>file 2>>file #working
감사해요
답변1
당신이 원하는 것은 파일 설명자 1(stdout)을 설정하여 파일에 추가한 다음 fd 2(stderr)를 리디렉션하여 fd 1이 수행하는 작업을 수행하는 것입니다.
command >>file 2>&1
리디렉션 연산자가 아니기 2>>&1
때문에 오류가 발생합니다 .>>&
읽다리디렉션Bash 매뉴얼에서 특히 섹션 3.6.5 및 3.6.8
답변2
태그가 지정되어 있으므로 이를 사용하여 stdout 및 stderr을 리디렉션(추가) bash
할 수 있습니다 .&>>
command &>>file