b__ono__ng

2>&1 의 의미 본문

IT/Experience

2>&1 의 의미

b__ono__ng 2026. 3. 5. 14:06

Kiro-CLI나 Clode Code같은 툴을 쓸 때 보면 디버깅을 한다고 이런 식으로 명령어를 사용하는 경우가 있다.

python test.py > result.log

이게 뭔지 궁금해서 gemini한테 물어봤는데, 쉽게 말하면 오류 로깅용이다.

이런식으로 로그를 저장한다고 생각해보면, 저 코드의 실행 결과가 result.log에 저장될것이다. 그런데 이렇게 하면 정상적인 출력만 저장되고, 중간이나 마지막에 오류가 나면 그건 파일에 저장되지 않는다.

그래서 로그 파일을 열어봤을 때 에러 메시지를 확인할 수 없으니 오류까지 로그에 저장해! 라는 의미로 저 명령어를 마지막에 붙이는거다. 각각의 의미는 이렇다.

  • 1 (표준 출력, stdout): 프로그램이 정상 실행될 때 나오는 일반 로그 메시지
  • 2 (표준 에러, stderr): 프로그램 실행 중 발생하는 에러나 경고 메시지
  • > (리다이렉션): 출력 방향 (출력할 위치) 조절
  • &!: 1번 통로(표준 출력)으로 보내라! &는 디스크립터라서 포인터같은 개념