리다이렉트 출력 기호, >
는 명령어의 결과를 화면 대신 파일에 저장되게 해줍니다.
command > filename
예를 들어, date > output.txt
명령을 수행하면 현재 날짜 정보가 output.txt 파일에 쓰여집니다.
리다이렉트 출력을 기존 파일에 하면 덮어씁니다. 만약 덮어쓰지 않고 추가되게 하고 싶다면 >>
를 사용하면 됩니다.
command >> filename
date >> output.txt
파일의 내용을 표준 입력으로 전달하고 싶을 때는 <
기호를 사용합니다.
command < filename
cat < original.txt > output.txt
cat < original.txt >> output.txt
sort < names.txt > sorted.txt
표준 에러를 리다이렉트하고 싶은 경우에는 2>
기호를 사용합니다.
cat nonexistentfile 2> error.txt
2>
인 이유는 표준 출력이 1이기 때문입니다. 1>
과 >
은 같은 역할을 합니다.
ls -zzz 2>> error.txt
ls docs > output.txt 2> output.txt
위와 같이 동시에 사용할 때는 항상 표준 출력 리다이렉션을 먼저 사용해야 합니다. 에러가 안나면 표준 에러 redirection은 실행되지 않습니다.
표준 에러와 표준 출력을 같은 파일에 저장하고 싶을 때는 2>&1
기호를 사용합니다.
ls docs > output.txt 2>&1
더 심플하게는 다음과 같이 &>
기호를 사용할 수도 있습니다.
ls docs &> output.txt
ls docs &>> output.txt