결과를 copy&paste 할 수 있지만 linux에서는 그보다 간편한 방법이 있다!
ls -al > list.txt
결과 확인
">"으로
출력방향을 파일로 Redirection 하는 것이다!
존재 하지 않는 list.txt 파일을 삭제한다면 에러가 발생할 것이다.
이 때 출력된 에러 메시지를 텍스트 파일에 저장해보자.
위의 내용을 참고하여 rm list.txt > list_error.txt 로 하면
list_error.txt 파일에 에러 메시지가 저장될 거 같지만, 예상과 다르다.
cat list_error.txt 해도 아무것도 출력되지 않는다.
rm list.txt > list_error.txt 에서 Redirection > 은 standard output을 뜻한다.
1은 standard output을 뜻하고, 2는 standard error를 뜻한다.
단순 > 은 1을 생략한 것이다. (위의 결과와 같다)
에러 메시지를 Redirection하기 위해서는
standard error redirection을 뜻하는 2>를 사용해야 한다.
rm list.txt 2> list_error.txt
결과는..?
내가 원하는 대로 list_error.txt 파일에 에러 메시지가 저장되었다!
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
결과
Redirection output > 은 기존 파일의 내용을 삭제하고 새로운 내용으로 덮어 쓴다.
Redirection하는데 그 결과를 추가하고 싶다면 >> 을 사용한다.
ls -al >> hello.txt