| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- terminal
- 정규표현식
- 쉘스크립트
- coreutils
- PackageManagement
- 유닉스명령어
- Solaris
- 사용자관리
- tcsh
- php
- 터미널
- environment
- 파일시스템
- sysadmin
- 리눅스
- 리눅스명령어
- JavaScript
- 명령어
- 자바스크립트
- Unix명령어
- shell
- UNIX
- js
- bash
- 시스템관리
- UnixCommand
- cups
- 유닉스
- linuxcommand
- linux
Archives
- Today
- Total
ioerror
<, >, >> 사용법 및 옵션 - 표준 입출력 리다이렉션(재지정) 연산자 본문
반응형

<, >, >> - Input/Output Redirection Operators
표준 입출력 리다이렉션(재지정) 연산자
명령어의 표준 입력(stdin), 표준 출력(stdout), 표준 에러(stderr)의 데이터 흐름 방향을 기본 터미널 화면이나 키보드가 아닌 파일 또는 다른 파일 기술자(File Descriptor)로 변경하는 유닉스 및 리눅스 쉘(Shell)의 핵심 리다이렉션 연산자이다.
1. 명령어 용도
- 사용가능 OS, Shell: POSIX 호환 모든 유닉스 및 리눅스 쉘 (bash, zsh, ksh, sh 등)
- 명령어의 실행 결과를 파일로 저장하거나 로그 기록을 누적하여 백업하는 경우
- 파일의 내용을 키보드 입력 대신 명령어의 표준 입력으로 전달하는 경우
- 크론탭(crontab) 또는 자동화 스크립트 실행 시 로그 및 에러 메시지를 지정된 파일로 분리하여 기록하는 경우
2. 명령어 서식
Bash
# 1. 입력 리다이렉션 (Input Redirection)
command < input_file
# 2. 출력 리다이렉션 (덮어쓰기 - Output Redirection Overwrite)
command > output_file
# 3. 출력 리다이렉션 (추가하기 - Output Redirection Append)
command >> output_file
3. 명령어 옵션
- 주요 옵션 소개 테이블
| 연산자/구문 | 설명 | 사용가능 OS 및 쉘 |
| < file | 지정한 파일의 내용을 명령어의 표준 입력(stdin, FD 0)으로 전달하다. | [POSIX/Shell] |
| > file | 명령어의 표준 출력(stdout, FD 1)을 파일로 리다이렉션하여 기존 내용을 덮어쓰다. | [POSIX/Shell] |
| >> file | 명령어의 표준 출력(stdout, FD 1)을 파일로 리다이렉션하여 기존 내용 끝에 추가하다. | [POSIX/Shell] |
| 2> file | 명령어의 표준 에러(stderr, FD 2)를 파일로 리다이렉션하여 덮어쓰다. | [POSIX/Shell] |
| 2>> file | 명령어의 표준 에러(stderr, FD 2)를 파일로 리다이렉션하여 끝에 추가하다. | [POSIX/Shell] |
| &> file 또는 >& file | 표준 출력과 표준 에러를 모두 지정한 파일로 리다이렉션하다 (덮어쓰기). | [Bash/zsh] |
| &>> file | 표준 출력과 표준 에러를 모두 지정한 파일 끝에 추가하다. | [Bash 4.0+/zsh] |
| 2>&1 | 표준 에러(FD 2)를 표준 출력(FD 1)이 가리키는 곳으로 리다이렉션하다. | [POSIX/Shell] |
| 1>&2 | 표준 출력(FD 1)을 표준 에러(FD 2)가 가리키는 곳으로 리다이렉션하다. | [POSIX/Shell] |
| << WORD | 히어 다큐먼트(Here Document) 형태로 지정한 키워드(WORD)가 나올 때까지의 입력 스트림을 전달하다. | [POSIX/Shell] |
| <<< "string" | 히어 스트링(Here String) 형태로 단일 문자열을 표준 입력으로 직접 전달하다. | [Bash/zsh/ksh] |
| `> | file` | noclobber 옵션이 활성화된 상태에서도 강제로 파일에 덮어쓰다. |
- 명령어 옵션 사용시 결과 예시
Bash
# 1. 입력 리다이렉션 (<) - 파일 내용을 cat 명령의 입력으로 전달
cat < input.txt
# output:
# Hello Linux World
# 2. 출력 리다이렉션 (>) - 실행 결과를 파일로 저장 (덮어쓰기)
date > log.txt
cat log.txt
# output:
# Sun Aug 9 16:37:10 KST 2026
# 3. 추가 출력 리다이렉션 (>>) - 파일 끝에 실행 결과 누적
echo "Line 2" >> log.txt
cat log.txt
# output:
# Sun Aug 9 16:37:10 KST 2026
# Line 2
# 4. 표준 출력과 표준 에러 병합 리다이렉션 (2>&1 및 &>)
ls /valid_dir /invalid_dir > output.log 2>&1
cat output.log
# output:
# ls: cannot access '/invalid_dir': No such file or directory
# /valid_dir:
# file1.txt file2.txt
# 5. 히어 스트링 (<<<)을 이용한 단일 문자열 전달 [Bash/zsh]
grep "error" <<< "system error occurred"
# output:
# system error occurred
4. 명령어 특이사항(유의사항)
- noclobber 옵션과 > 덮어쓰기 방지: 쉘 환경에서 set -o noclobber가 설정되어 있으면 > 연산자로 기존 파일에 덮어쓰기를 시도할 때 cannot overwrite existing file 오류가 발생하며 파일 훼손이 방지된다. 강제로 덮어쓰려면 >| 연산자를 사용해야 하다.
- 리다이렉션 구문 순서의 중요성 (> file 2>&1 vs 2>&1 > file): command > file 2>&1 구문은 표준 출력을 먼저 파일로 보낸 뒤 표준 에러를 표준 출력이 가리키는 동일한 파일로 전달하므로 두 출력이 모두 파일에 기록된다. 반면 command 2>&1 > file 순서로 작성하면 표준 에러가 현재 터미널(stdout)로 먼저 연결된 후 표준 출력만 파일로 전달되므로 에러 메시지가 파일에 저장되지 않고 화면에 출력되다.
- 권한 승격(sudo) 시 리다이렉션 실행 주체: sudo echo "data" > /root/file.txt 실행 시 echo 명령만 root 권한으로 작동하며, > 파일 쓰기는 현재 쉘의 일반 사용자 권한으로 수행되어 Permission denied 오류가 발생하다. 이를 해결하려면 echo "data" | sudo tee /root/file.txt 또는 sudo sh -c 'echo "data" > /root/file.txt' 형식을 사용해야 하다.
- 파일 기술자(File Descriptor) 번호: 0은 표준 입력(stdin), 1은 표준 출력(stdout), 2는 표준 에러(stderr)를 나타내며, 연산자 바로 앞에 붙여 사용할 때 숫자와 연산자 사이에 공백이 없어야 하다 (예: 2>, 1>).
관련 명령어들
- tee: 표준 입력을 받아 표준 출력과 지정한 하나 이상의 파일에 동시에 기록하다.
- cat: 파일 내용을 출력하거나 여러 파일을 하나로 연결하다.
- pipe (|): 한 명령어의 표준 출력을 다른 명령어의 표준 입력으로 직접 전달하다.
- /dev/null: 모든 입력을 무시하고 버리는 유닉스 특수 장치 파일이다.
https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference
UNIX & Linux Command Reference
유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하
ioerror.tistory.com
반응형
'OS' 카테고리의 다른 글
| ;(세미콜론) 사용법 및 옵션 - 명령어 순차 실행 및 구문 구분 제어 기호 (0) | 2026.08.09 |
|---|---|
| | , |& 사용법 및 옵션 - 명령어 표준 출력을 다른 명령어의 표준 입력으로 연결하는 파이프 연산자 (0) | 2026.08.09 |
| =(equal) 사용법 및 옵션 - 문자열 비교 및 조건식 검증 연산자 (0) | 2026.08.09 |
| zip 사용법 및 옵션 - 파일 및 디렉터리 압축 및 아카이브 생성 (0) | 2026.08.09 |
| zcat 사용법 및 옵션 - 압축 파일의 내용을 해제 없이 표준 출력으로 조회 (0) | 2026.08.09 |
Comments