본문 바로가기

리눅스

리눅스 쉘 리다이렉션(Redirection)

반응형

리눅스 쉘 리다이렉션(Redirection)

리눅스 쉘 리다이렉션(Redirection)은 명령어 실행 결과를 화면이 아닌 다른 위치로 보내는 기능을 말합니다. 주로 명령어의 출력을 파일로 저장하거나, 파일의 내용을 명령어에 입력하는 등 다양한 용도로 사용됩니다. 리다이렉션은 표준 입출력(STDIN, STDOUT, STDERR)에 대해 적용됩니다.

 

리눅스 쉘 리다이렉션에는 다음과 같은 기호들이 사용됩니다.

기호 설명
stdin 키보드 (표준입력, 0)
stdout 모니터 (표준출력, 1)
stderr 모니터 (에러출력, 2)
> 출력 리다이렉션 (stdout 만을 보냄)
< 입력 리다이렉션 (stdin 파일로부터 데이터를 받음)
>> 추가 출력 리다이렉션 (새로 덮어쓰지 않고 추가)
2> 표준에러 리다이렉션 (stderr 만을 보냄)
&>word 표준 출력과 표준에러를 동시에 리다이렉트 함
>& word
>word 2>&1
  • > : 명령어의 출력을 파일로 저장합니다. 기존 파일의 내용이 덮어쓰여집니다.
  • >> : 명령어의 출력을 파일로 추가합니다. 기존 파일의 끝에 내용이 추가됩니다.
  • < : 파일의 내용을 명령어의 입력으로 사용합니다.
  • 2> : 명령어의 오류 출력(STDERR)을 파일로 저장합니다.
  • 2>&1 : 명령어의 오류 출력을 표준 출력과 함께 처리합니다.

사용 예시

  • 명령어 출력을 파일로 저장
ls > file_list.txt  # ls 명령어의 결과를 file_list.txt 파일에 저장
  • 명령어 출력을 파일에 추가
echo "Hello, World!" >> greetings.txt  # "Hello, World!"를 greetings.txt 파일에 추가
  • 파일의 내용을 명령어 입력으로 사용
sort < unsorted.txt  # unsorted.txt 파일의 내용을 sort 명령어의 입력으로 사용하여 정렬
  • 명령어 오류 출력을 파일로 저장
ls /non_existent_directory 2> error_log.txt  # 오류 출력을 error_log.txt 파일에 저장
  • 명령어 출력과 오류 출력을 함께 저장
ls /non_existent_directory > output.txt 2>&1  # 출력과 오류 모두를 output.txt 파일에 저장

리눅스 쉘 리다이렉션은 강력한 기능으로, 명령어 실행 결과를 파일로 저장하거나 입출력을 조작하는데 유용하게 활용됩니다.

Crontab 사용 예시

50 23 * * * php -q /home/backup.php >> /home/backup-`date \+\%Y\%m`.log
*/15 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null
0 5 * * * /var/qmail/bin/qmailstats &>/dev/null
00 00 * * * /etc/init.d/qmaild logrotate 2>/dev/null

 

참고URL

- http://devanix.tistory.com/230

 

728x90
반응형