본문 바로가기

UNIX / LINUX

[LINUX/UNIX] 출력방향변경 (redirection)

터미널 화면에 그대로 출력이 되는 명령어들을

특정 파일에 저장하고 싶을 때

> 를 사용한다.

 

$echo 'hello'

  hello

$                    

그냥 쓰면 이렇게 되지만

$echo 'hello' > a.txt

$cat a.txt

  hello

$

> 를 사용하면 내용이 터미널 상에 출력되지 않고

파일에 써버린다. 즉, 표준출력이라면 화면에 뿌려줬겠지만(터미널에..)

출력의 방향을 표준출력이 아닌 특정 파일로 바꾼것이다.

 

>> 이렇게 사용하면 해당 파일이 존재할 때 덮어 쓰지 않고 파일 끝에 추가한다.

 

  • 표준에러 출력방향변경

사실 이 글을 쓴 이유는 이거다.. 앞에것은 알았었는데 이건 얼마전에 알았다.

명령어 사용 시의 에러 문구들은 출력방향변경이 안되고, 그냥 터미널 상에 출력된다.

그러므로 다른 방법을 사용해야 한다.

 

$ls hello > error.txt

  hello not found           

 

이런 에러 메세지까지 방향변경을 하려면

$ls hello 2> error.txt

$cat error.txt

  hello not found

$

 

2> 이런식으로 해주면 된다.