IORedirection

honeybeeveloper·2022년 10월 14일
0

IORedirection Output

ls -al 의 결과를 list.txt 파일에 저장하고 싶다면?

결과를 copy&paste 할 수 있지만 linux에서는 그보다 간편한 방법이 있다!

ls -al > list.txt

결과 확인

">"으로
출력방향을 파일로 Redirection 하는 것이다!



에러 메시지를 list_error.txt 파일에 저장하고 싶다면?

존재 하지 않는 list.txt 파일을 삭제한다면 에러가 발생할 것이다.
이 때 출력된 에러 메시지를 텍스트 파일에 저장해보자.

위의 내용을 참고하여 rm list.txt > list_error.txt 로 하면
list_error.txt 파일에 에러 메시지가 저장될 거 같지만, 예상과 다르다.

cat list_error.txt 해도 아무것도 출력되지 않는다.



왜.. 일까?

rm list.txt > list_error.txt 에서 Redirection >standard output을 뜻한다.
1standard output을 뜻하고, 2standard error를 뜻한다.
단순 > 은 1을 생략한 것이다. (위의 결과와 같다)

에러 메시지를 Redirection하기 위해서는
standard error redirection을 뜻하는 2>를 사용해야 한다.

rm list.txt 2> list_error.txt




결과는..?

내가 원하는 대로 list_error.txt 파일에 에러 메시지가 저장되었다!



IORedirection Input

cat 명령어는 인자로 받은 파일을 화면에 출력해주는 명령어이다.

cat hello.txt


파일에 있는 내용을 출력하는 또 다른 방법이 있다!

Redirection < 사용하여 hello.txt 파일 안에 있는 내용을 cat의 입력으로 Redirection 시켜준다.

cat < hello.txt

cat hello.txt vs cat < hello.txt의 차이는
cat hello.txt 는 command line argument로 hello.txt 를 전달한 것!
cat < hello.txt 는 standard input 으로 받은 것!



응용

Redirection Input/Output을 이용하여 여러 문장이 있는 hello.txt 파일에서 첫번째 문장만 hello_one.txt 에 저장해보자.

head -n1 < hello.txt > hello_one.txt

결과



IORedirection Append

Redirection output > 은 기존 파일의 내용을 삭제하고 새로운 내용으로 덮어 쓴다.

Redirection하는데 그 결과를 추가하고 싶다면 >> 을 사용한다.

ls -al >> hello.txt

profile
꿀벌같은 개발자가 되고 싶습니다.

0개의 댓글