흰 스타렉스에서 내가 내리지

명령어의 출력 결과를 파일에 저장하기 (파이프, tee) 본문

Linux

명령어의 출력 결과를 파일에 저장하기 (파이프, tee)

주씨. 2024. 8. 13. 23:06
728x90

파이프('|') 를 사용해서 명령어의 출력 결과를 표준 입력으로 받아 화면과 동시에 파일에 저장할 수 있다. 

 

# 파이프 기능

- 여러 프로그램의 기능을 하나의 명령줄로 효과적으로 구성할 수 있도록 프로그램의 출력 결과를 또 다른 프로그램의 입력으로 전달할 수 있는 일종의 프로세스 간 통신 기술 (Inter Process Communication) 이다. 

- '|' 를 통하여 파이프 기능을 사용할 수 있고, 아래의 예처럼 파이프를 중첩하여 사용할 수도 있다. 

command1 | command2 | command3

 

- 아래와 같이 ls -l 명령어의 출력이 한 화면을 넘어간다면 파이프를 통해 그 결과를 less 명령어로 넘겨 마우스 스크롤이나 키보드로 결과를 살펴볼 수 있다. 

ls -l | less

 

 

# tee

- 표준 입력으로부터 데이터를 읽어 표준 출력으로 출력하거나 또는 이와 동시에 파일에 저장할 수 있다. 

- tee는 표준 출력과 파일 저장을 동시에 수행할 수 있기 때문에 하나의 파이프라인을 양 갈래로 나누어 보낼 수 있다. 

 

 

# ping 명령어의 출력 결과를 표준 입력으로 받아 화면과 동시에 파일에 저장하기

ping google.com -c 1 | tee result.txt

 

- `ping` : 특정 호스트로 패킷을 보내고 응답 시간을 측정하는 명령어 

- `-c 1` : ping 명령어의 옵션으로, 패킷을 몇 번 보낼지를 지정한다. '-c 1' 은 단 한 번만 핑을 보내겠다는 의미이다. 기본적으로 ping 명령어는 종료되지 않고 계속해서 패킷을 보낸다. 

 

- `|` : 파이프 기호이다. 앞에서 실행된 명령어의 출력을 뒤에 오는 명령어의 입력으로 전달한다. 여기서는 ping 명령어의 출력을 tee 명령어로 전달하는 역할을 한다. 

 

 

tee 에 -a 옵션을 사용하고 파일명을 기재하면 파일이 새로 생성되는 것이 아니라 파일 맨 끝에 추가된다. 

ping google.com -c 1 | tee -a result.txt

'Linux' 카테고리의 다른 글

레드햇 계열과 데비안 계열  (0) 2024.08.28
스왑 파일 (swap file) 생성하기  (0) 2024.08.22
macOS M1 에서 Rocky Linux 설치  (0) 2024.08.13