본문 바로가기
프로그래밍/리눅스

>, >>, < 이건 뭐야? Bash 셸에서 리다이렉션(Redirection) 사용하기

by bantomak 2025. 1. 20.
반응형

리다이렉션(Redirection)

리눅스를 사용하는 와중에 >, >>, <와 같은 기호를 본 적이 있을 것이다. 이는 셸에서 제공하는 리다이렉션 연산자이다.

리다이렉션은 셸에서 표준 입출력 스트림을 다른 방향으로 전환하는 기능을 말한다. Bash 셸에서는 기본적으로 세 가지 주요 스트림이 존재한다.

  • 표준 입력(stdin) : 파일 디스크립터 번호 0
  • 표준 출력(stdout) : 파일 디스크립터 번호 1
  • 표준 오류 출력(stderr) : 파일 디스크립터 번호 2

리다이렉션을 사용하면 이러한 스트림을 파일이나 다른 스트림으로 변경할 수 있다.

리다이렉션 연산자(Redirection Operator)

리다이렉션은 명령어의 입력과 출력을 파일이나 다른 명령어로 연결하는 데 사용된다. 리다이렉션은 셸에서 제공하는 강력한 기능으로, 표준 입출력을 다루는 중요한 도구이다.

출력 리다이렉션(Output Redirection)

echo "Hello, world" > output.txt
  • > (덮어쓰기)
    • 명령어의 표준 출력(stdout)을 지정된 파일로 저장한다.
    • 파일이 존재하면 덮어쓰기가 이루어진다.
    • output.txt 파일에 "Hello, world"가 저장된다.
    • 기존 output.txt 파일의 내용이 삭제되고 새로 작성된다. (덮어쓰기)

output.txt 파일이 없으면 새로 생성하고 그 안에 내용을 출력 리다이렉션으로 전달한 내용으로 채운다.

echo "Appended Line" >> output.txt
  • >> (추가)
    • 명령어의 표준 출력(stdout)을 지정된 파일에 추가한다.
    • 파일이 존재하면 내용을 유지한 채 뒤에 추가한다.
    • 파일이 없으면 새로 생성한다.
    • output.txt 파일에 "Appended Line"이 추가된다.

>>를 이용해서 기존 내용에 텍스트를 추가하였다.

입력 리다이렉션(Input Redirection)

cat < input.txt
  • <
    • 파일의 내용을 명령어의 표준 입력(stdin)으로 전달한다.
    • input.txt 파일의 내용을 cat 명령어로 읽어와서 출력한다.

output.txt 파일의 내용이 출력된다.

표준 에러 리다이렉션(Error Redirection)

ls nonexistentfile 2> error.log
  • 2> (표준 에러 출력 덮어쓰기)
    • 명령어의 표준 에러(stderr)를 지정한 파일로 저장한다.
ls nonexistentfield 2>> error.log
  • 2>> (표준 에러 출력 추가)
    • 표준 에러(stderr)를 지정한 파일에 추가한다.

리다이렉션 대상 없애기

command > /dev/null 2>&1
  • /dev/null
    • /dev/null은 리눅스의 블랙홀로, 데이터를 쓰면 그대로 버려진다.
    • 출력을 원치 않을 때 사용하면 된다.
    • 표준 출력과 표준 에러를 모두 /dev/null로 보내서 버린다.
    • 결과적으로 아무런 출력도 표시되지 않는다.

함께 읽으면 좋은 글

 

Bash와 셸 스크립트(Shell Script)의 관계

Bash란?Bash(Bourne Again Shell)는 유닉스 및 리눅스 운영체제에서 가장 널리 쓰이는 셸(Shell) 중에 하나이다.셸(Shell)은 사용자가 운영체제와 상호작용할 수 있도록 명령을 해석하고 실행하는 명령줄 인

jettstream.tistory.com

 

쉘 리다이렉션(Redirection) 사용법

Engineering Blog by Dale Seo

www.daleseo.com

댓글