Standard Output - 표준출력
터미널에 즉시 출력
다른 명령어의 입력값으로 쓰거나
다른 장치에 전달해서 출력
Standard Error - 표준 에러
터미널에 즉시 출력
Standard Input - 표준 입력
표준 입력을 다른 파일이나 다른 명령의 결과로 바꾸는 것
사용
command > filename
dduui-MacBookPro:Redirection ddu$ date > today.txt
dduui-MacBookPro:Redirection ddu$ ls
today.txt
ㄷ ㄷ 파일이 생겨버림
원래 있던 파일에 리다이렉션하면 덮어쓰기됨
새로운 데이터 추가
사용
>>
dduui-MacBookPro:Redirection ddu$ date >> cal.txt
dduui-MacBookPro:Redirection ddu$ cat cal.txt
2023년 5월 28일 일요일 20시 52분 02초 KST
2023년 5월 28일 일요일 20시 52분 15초 KST
dduui-MacBookPro:Redirection ddu$
다른 폴더의 파일 sort 해서 리다이렉션 하기
dduui-MacBookPro:Redirection ddu$ sort ../colors.txt >> cal.txt
dduui-MacBookPro:Redirection ddu$ cat cal.txt
2023년 5월 28일 일요일 20시 52분 02초 KST
2023년 5월 28일 일요일 20시 52분 15초 KST
blue
green
indigo
orange
red
violet
yellow
dduui-MacBookPro:Redirection ddu$ cat cal.txt
dduui-MacBookPro:Redirection ddu$ echo "meow" > cat.txt
dduui-MacBookPro:Redirection ddu$ ls
cal.txt cat.txt list.txt today.txt
dduui-MacBookPro:Redirection ddu$ cat cat.txt
meow
dduui-MacBookPro:Redirection ddu$
ㄸㄷ
표준 입력의 리다이렉션
사용
<
cat < cat.txt 이렇게 하면 cat cat.txt 의 결과와 비슷함
cat < original.txt > output.txt
파일 하나를 읽어서 리다이렉션 한 뒤에 이미 있는 파일에 덮어쓰거나 새로운 파일을 만듦ㅌ
dduui-MacBookPro:Redirection ddu$ cat < dog.txt > sounds.txt
dduui-MacBookPro:Redirection ddu$ ls
cal.txt cat.txt dog.txt list.txt sounds.txt today.txt
dduui-MacBookPro:Redirection ddu$ cat sounds.txt
woof
dduui-MacBookPro:Redirection ddu$ cat < dog.txt >> sounds.txt
dduui-MacBookPro:Redirection ddu$ cat sounds.txt
woof
woof
dduui-MacBookPro:Redirection ddu$
---------------------------------
dduui-MacBookPro:Redirection ddu$ cat < cat.txt >> sounds.txt
dduui-MacBookPro:Redirection ddu$ cat sounds.txt
woof
woof
meow
dduui-MacBookPro:Redirection ddu$
표준에러의 리다이렉션은 조금 다름
사용
2>
표준에러
dduui-MacBookPro:Redirection ddu$ cat sort.txtd > sortiedstuff
cat: sort.txtd: No such file or directory
dduui-MacBookPro:Redirection ddu$
에러를 리다이렉션해서 파일로 보관할 경우 !?
dduui-MacBookPro:Redirection ddu$ ls dsjgklasdjgl
ls: dsjgklasdjgl: No such file or directory // -> 표준에러
dduui-MacBookPro:Redirection ddu$ ls dsjlkasjgl 2> errorlog.txt -> 표준에러를 리다이렉션
dduui-MacBookPro:Redirection ddu$ ls
cal.txt dog.txt list.txt sortiedstuff today.txt
cat.txt errorlog.txt sortedstuff sounds.txt
dduui-MacBookPro:Redirection ddu$ cat errorlog.txt
ls: dsjlkasjgl: No such file or directory
dduui-MacBookPro:Redirection ddu$
dduui-MacBookPro:Redirection ddu$ cat idontexits 2>> errorlog.txt
dduui-MacBookPro:Redirection ddu$ cat errorlog.txt
ls: dsjlkasjgl: No such file or directory
cat: idontexits: No such file or directory
dduui-MacBookPro:Redirection ddu$
왜 2???
0,1은 안쓰고 2는 명시적으로 적어줘야함 ㅋ
표준입력은 0, 표준출력은 1, 표준 에러는 2번임
cat bees.txt ant.txt > insects.txt 2> error.txt
bees.txt, ant.txt 를 합쳐서 출력한 것을 insects.txt에 덮어쓰거나 새로 만듦.
과정 중 에러가 생기면 에러는 error.txt 에 저장
표준 출력 후 에러 처리함
2>&1
표준에러와 표준 출력을 같은 파일에 저장할때만 사용하는 구문
ls -l > output.txt 2> output.txt
대신
ls -l > output.txt 2>&1
이렇게 사용