본문 바로가기
리눅스 (Linux)

리다이렉션

by 멸치김밥 2021. 12. 19.
[명령어] < [파일명]             ----> 파일의 내용을 명령어의 입력으로 사용
[명령어] > [파일명]             ----> 명령어의 결과를 파일에 덮어쓴다
[명령어] >> [파일명]            ----> 명령어의 결과를 파일에 추가한다
[명령어] 1> [파일명]            ----> 명령어의 결과를 파일에 덮어쓴다
[명령어] 2> [파일명]            ----> 명령어의 결과가 에러일때, 에러를 파일에 덮어쓴다
[명령어] 1> [파일1] 2> [파일2]  ----> 명령어의 결과는 파일1에, 에러는 파일2에 덮어쓴다
[명령어] 1> [파일] 2> [파일]    ----> 명령어의 결과, 에러 모두 파일에 덮어쓴다

위 명령어들을 실행할 때, 해당 경로의 해당 파일이 존재하지 않으면 알아서 파일을 생성하고 내용을 입력한다.

위 리다이렉션들 사용법들 중 > 를 >>로 바꾸면 덮어쓰지 않고 추가하게 된다.

-------------------kimchi.sh-------------
김치볶음밥
참치볶음밥
계란 후라이
egg

-----------------------------------------
$ wc < kimchi.sh                           --> wc는 데이터의 텍스트 줄 수,
 4  5 53                                         단어 수, 바이트 를 반환

이런식으로 사용할 수 있다.

wc의 줄 수는 엔터의 개수로 보는가 보다 마지막 줄에서 엔터를 넣느냐 마느냐로 차이가 발생한다.

단어 수는 문자 사이의 공백이 있으면 단어로 보나보다.

 

 

그 외에도

[명령어] 1> [파일명] 2> /dev/null

[명령어] > [파일명] 2>&1

[명령어] &> [파일명] == [명령어] >& [파일명]

같은 사용법도 있다

 

/dev/null은 윈도우로 치면 쓰레기통과 같다고 한다. 대신 윈도우처럼 쓰레기통의 용량이 따로 마련되어있지 않아 삭제하는것과 같다고 한다.

 

[명령어] > [파일명] 2>&1

이건 결과(표준출력)를 [파일명]에 덮어쓰고 에러는 백그라운드를 통해 표준출력으로 보내라는 뜻이란다..

무슨말인지 말 모르겠지만 실행해보니

에러가 똑같이 기록되는거 보니 아래 "[명령어] &> [파일명]" 와 별반 차이는 없는것같다.

실행시간이 길어진다면야 백그라운드가 의미가 좀 생길 것 같다.

 

[명령어] &> [파일명] 은 [명령어] 1> [파일] 2> [파일] 과 같다

결과와 에러 모두 [파일]에 덮어쓴다

 

'리눅스 (Linux)' 카테고리의 다른 글

연월 입력받아 달력 출력하기  (0) 2021.12.21
배열  (0) 2021.12.20
명령어 치환 (Command Substitution)  (0) 2021.12.19
특수 변수  (0) 2021.12.19
특수 권한  (0) 2021.12.19

댓글