리눅스에서 리다이렉트(Redirect)는 명령의 입력과 출력 방향을 바꾸는 기능을 말합니다. 기본적으로 명령의 입력은 키보드에서 들어오고, 출력은 화면(터미널)으로 표시되지만, 리다이렉트를 사용하면 이 흐름을 파일로, 파일에서, 또는 다른 명령으로 자유롭게 바꿀 수 있습니다. 리눅스의 데이터 흐름을 이해하는 핵심 기술이며, 쉘 스크립트·로그 관리·백업 자동화·데이터 분석 등에서 매우 중요한 역할을 합니다.

1. 리다이렉트란 무엇인가
리다이렉트는 영어 의미 그대로 “방향을 바꾸다”라는 뜻입니다.
즉, 명령의 결과가 화면으로 출력되는 기본 흐름을 파일로 보내거나, 또는 명령의 입력을 키보드 대신 파일에서 받도록 변경하는 기능입니다.
명령의 입출력 흐름을 아래처럼 바꾸는 개념입니다.
(기본) 키보드 → 명령 → 화면
(리다이렉트) 파일 → 명령 → 파일
이 구조를 자유롭게 조작할 수 있다는 점에서 리눅스가 강력한 자동화를 구현할 수 있습니다.
2. 리다이렉트의 기호와 의미
| 기호 | 의미 |
| > | 표준출력을 파일로 저장 (덮어쓰기) |
| >> | 표준출력을 파일 끝에 추가 |
| < | 파일 내용을 표준입력으로 사용 |
| 2> | 오류 메시지를 파일로 저장 |
| &> | 모든 출력(정상 + 오류)을 함께 저장 |
3. > — 출력 내용을 파일로 덮어쓰기 저장
가장 기본적인 리다이렉트입니다.
ls > list.txt
ls 명령의 결과가 화면에 출력되지 않고 list.txt 파일로 저장됩니다.
파일이 이미 있을 경우 내용은 새 결과로 덮어쓰기 됩니다.
4. >> — 파일 끝에 내용 추가
기록을 이어 붙일 때 유용합니다.
date >> log.txt
기존 log.txt 내용은 유지되고, 마지막 줄 뒤에 현재 날짜가 추가됩니다.
자동 기록, 누적 로그 작성에 가장 많이 쓰입니다.
5. < — 파일 내용을 표준입력으로 사용
명령의 입력을 키보드가 아닌 파일에서 받습니다.
sort < names.txt
names.txt 파일 내용이 입력으로 전달되고, 정렬 결과가 화면에 출력됩니다.
6. 2> — 오류 메시지만 따로 저장
표준출력(결과)과 표준에러(오류)를 구분할 수 있습니다.
cp *.log backup/ 2> error.txt
정상적으로 복사된 파일 목록은 화면에 출력되고, 오류 메시지만 error.txt에 저장됩니다.
특히 배포 자동화나 서버 운영 시 매우 유용합니다.
7. &> — 모든 출력(정상 + 오류)을 한 번에 저장
tar -cvf backup.tar /home &> backup_log.txt
실행 과정에서 나타나는 정상 메시지와 오류 메시지 모두 backup_log.txt에 기록됩니다.
8. 표준입력과 표준출력 함께 리다이렉트 하기
명령의 입력과 출력을 동시에 변경할 수도 있습니다.
sort < names.txt > sorted.txt
- 입력은 names.txt에서 받고
- 출력은 sorted.txt 파일에 저장합니다
데이터 정제·변환 작업, 자동 스크립트에서 자주 사용됩니다.
9. 리다이렉트의 실전 활용 예시
| 목적 | 명령 예 |
| 설치 로그 기록 | apt update &> install_log.txt |
| 실행 결과 누적 저장 | python test.py >> result.log |
| 특정 오류만 기록 | ./run.sh 2> error_only.log |
| 기존 파일 백업 후 새 출력 저장 | ls > result.txt && cp result.txt result.bak |
| 파일 합쳐 새 파일 생성 | cat a.txt b.txt c.txt > total.txt |
| 데이터 필터링 후 저장 | `cat data.txt |
명령이 길어지거나 데이터가 많아질수록 리다이렉트가 작업의 핵심이 됩니다.
10. 리다이렉트 사용 시 주의할 점
리다이렉트는 단순하지만 매우 강력한 기능이기 때문에 실수가 치명적인 결과로 이어질 수 있습니다.
| 주의 사항 | 이유 |
| > 사용 전 파일 존재 여부 확인 | 덮어쓰기로 인해 기존 내용 손실 위험 |
| >>는 로그 누적에만 사용 | 데이터가 반복 중복 저장될 가능성 |
| 경로 오타 주의 | 예상과 다른 위치에 파일 생성 가능 |
| 삭제 명령과 함께 사용 금지 | rm > file.txt 같은 경우 파일 자체 손실 |
특히 시스템 설정 파일을 다루는 경우 반드시 백업 → 편집 → 검증 순서를 지키는 것이 좋습니다.
11. 리다이렉트 개념이 중요한 이유
리다이렉트를 이해하면 다음과 같은 능력이 확실하게 향상됩니다.
- 로그 관리 자동화
- 데이터 가공 및 정렬
- 파이프와 조합한 데이터 파이프라인 구축
- 쉘 스크립트 작성 능력 상승
- 서버 운영 문제 해결 속도 향상
리눅스의 철학은 데이터를 입력 → 처리 → 출력의 흐름으로 이해하는 데 있습니다.
리다이렉트는 이 흐름을 사용자가 직접 설계할 수 있게 해주는 기술입니다.
마무리
리눅스의 리다이렉트는 단순히 명령의 결과를 파일로 보내는 기능이 아니라, 데이터가 어디에서 들어오고 어디로 나갈지 제어하는 기술입니다.
>, >>, <, 2>, &> 같은 기호만 익히면 금방 사용할 수 있으며, 실전에서는 파이프·조건문·스크립트와 결합되면서 강력한 자동화 도구로 확장됩니다.
작업량이 많을수록, 로그를 많이 다룰수록, 자동화가 필요할수록 리다이렉트의 가치는 크게 체감됩니다.
'리눅스 > 리눅스 기초' 카테고리의 다른 글
| 리눅스에서 표준입력과 표준출력 (2) | 2025.11.28 |
|---|---|
| 사용자 그룹 권한 부여 옵션, -aG (0) | 2025.05.03 |
| 사용자 kbh 추가 절차 (1) | 2025.05.02 |
| 리눅스 명령어, arp (1) | 2025.04.16 |
| 리눅스 명령어, apropos (1) | 2025.04.15 |