반응형
리다이렉션(Redirection)
리눅스를 사용하는 와중에 >, >>, <와 같은 기호를 본 적이 있을 것이다. 이는 셸에서 제공하는 리다이렉션 연산자이다.
리다이렉션은 셸에서 표준 입출력 스트림을 다른 방향으로 전환하는 기능을 말한다. Bash 셸에서는 기본적으로 세 가지 주요 스트림이 존재한다.
- 표준 입력(stdin) : 파일 디스크립터 번호 0
- 표준 출력(stdout) : 파일 디스크립터 번호 1
- 표준 오류 출력(stderr) : 파일 디스크립터 번호 2
리다이렉션을 사용하면 이러한 스트림을 파일이나 다른 스트림으로 변경할 수 있다.
리다이렉션 연산자(Redirection Operator)
리다이렉션은 명령어의 입력과 출력을 파일이나 다른 명령어로 연결하는 데 사용된다. 리다이렉션은 셸에서 제공하는 강력한 기능으로, 표준 입출력을 다루는 중요한 도구이다.
출력 리다이렉션(Output Redirection)
echo "Hello, world" > output.txt
- > (덮어쓰기)
- 명령어의 표준 출력(stdout)을 지정된 파일로 저장한다.
- 파일이 존재하면 덮어쓰기가 이루어진다.
- output.txt 파일에 "Hello, world"가 저장된다.
- 기존 output.txt 파일의 내용이 삭제되고 새로 작성된다. (덮어쓰기)
echo "Appended Line" >> output.txt
- >> (추가)
- 명령어의 표준 출력(stdout)을 지정된 파일에 추가한다.
- 파일이 존재하면 내용을 유지한 채 뒤에 추가한다.
- 파일이 없으면 새로 생성한다.
- output.txt 파일에 "Appended Line"이 추가된다.
입력 리다이렉션(Input Redirection)
cat < input.txt
- <
- 파일의 내용을 명령어의 표준 입력(stdin)으로 전달한다.
- input.txt 파일의 내용을 cat 명령어로 읽어와서 출력한다.
표준 에러 리다이렉션(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로 보내서 버린다.
- 결과적으로 아무런 출력도 표시되지 않는다.
함께 읽으면 좋은 글
'프로그래밍 > 리눅스' 카테고리의 다른 글
셸 스크립트(Shell Script) 디렉터리 생성, 삭제 및 파일 명령어 정리 (0) | 2025.01.25 |
---|---|
리눅스(Linux) 파일에 확장자가 없는 이유 (0) | 2025.01.23 |
Bash와 셸 스크립트(Shell Script)의 관계 (0) | 2025.01.20 |
PuTTYgen으로 SSH 키 발급해서 우분투 로그인하기 (0) | 2025.01.17 |
코딩 자율학습 리눅스 입문 with 우분투 학습 3일차 정리 (0) | 2025.01.12 |
댓글