라벨이 pipe인 게시물 표시

make 로그를 파일에 기록하면서 화면에 출력하기. Shell 명령어 tee

요약 make 로그를 파일에 기록하면서 화면에 출력하려면 아래 명령을 실행하면 됩니다. make 2>&1 | tee -a make.log Situation 큰 프로젝트를 컴파일 하는데 컴파일 로그를 분석해야했습니다. 로그가 엄청난 양이 발생하니 파일로 기록해야 분석할 수 있었고, 컴파일 진행상황도 알아야하니 화면으로 출력도 해야했습니다. Task make 출력 로그를 기록 기존의 화면 출력 로그 유지 Action 스크립트 한줄이지만, 알아야할 개념이 이렇습니다. Redirect and Pipe 표준 입출력 : stdin, stdout, stderr tee 각각의 개념에 대해 블로깅을 하게 되면 링크를 달기로 하고, 이번에는 make의 출력과 tee 사용법에 대해서 말씀드리도록 하겠습니다. make 일단 make를 하면 컴파일 로그들이 출력됩니다.  $ make ccache g++ -std=c++11 -Wall main.cpp -oleetcode -lgtest -lpthread main.cpp: In member function ‘std::string Solution::longestPalindrome(std::string)’: make 출력후 나오는 로그가 같은 로그(?)가 아닙니다. ccache로 시작하는 로그는 stdout, 이탤릭체는 stderr입니다.  그래서 make > build.log 를 하면 stdout 만 build.log에 기록되는 것입니다. stderr 을 stdout 으로 보내면 해결되겠죠? make 2>&1 > build.log tee 명령어 사용법 위의 명령을 실행하면 문제가 stdout을 build.log에 리다이렉트하므로 화면에 출력하는 내용이 없습니다. make 현재 상황을 알 수 없는거지요. 이때 필요한 명령이 tee입니다. $ make stdin -> tee -> stdout         ...

이 블로그의 인기 게시물

WSL2 Ubuntu 20.04 및 네트워크 설정

구글 시트에 여러 행 한번에 추가하기

리눅스 멀티코어를 사용하는 tar 압축/해제