Redirection

2dean·2023년 5월 28일
0

Linux 기초

목록 보기
5/13
post-thumbnail

Stantard Streams

  • Standard Output - 표준출력
    터미널에 즉시 출력
    다른 명령어의 입력값으로 쓰거나
    다른 장치에 전달해서 출력

  • Standard Error - 표준 에러
    터미널에 즉시 출력

  • Standard Input - 표준 입력

Redirecting Standard Output

표준 입력을 다른 파일이나 다른 명령의 결과로 바꾸는 것

사용
command > filename

dduui-MacBookPro:Redirection ddu$ date > today.txt
dduui-MacBookPro:Redirection ddu$ ls
today.txt

ㄷ ㄷ 파일이 생겨버림

원래 있던 파일에 리다이렉션하면 덮어쓰기됨

Appending

새로운 데이터 추가

사용
>>

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

echo 이용해서 쉽게 파일 만들기

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$

ㄸㄷ

redirection input

표준 입력의 리다이렉션

사용
<

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$

Redirecting Standard Error

표준에러의 리다이렉션은 조금 다름
사용
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 이렇게 사용

profile
냅다 써보는 공부의 흔적😇

0개의 댓글