IT박스

명령 출력이 파일 및 터미널로 리디렉션됩니다.

itboxs 2020. 12. 11. 07:57
반응형

명령 출력이 파일 및 터미널로 리디렉션됩니다.


이 질문에 이미 답변이 있습니다.

명령 출력을 파일과 콘솔에도 던지려고합니다. 파일에 출력을 기록하고 싶기 때문입니다. 나는 다음을 수행하고 있으며 파일에 추가하지만 ls터미널에 출력을 인쇄하지 않습니다 .

$ls 2>&1 > /tmp/ls.txt

예, 출력을 리디렉션하면 콘솔에 표시되지 않습니다. 사용 tee.

ls 2>&1 | tee /tmp/ls.txt

2> & 1은 표준 출력과 함께 표준 오류도 리디렉션된다는 것을 의미합니다. 그래서

someCommand | tee someFile

표준 오류가 아닌 파일의 표준 출력 만 제공합니다. 표준 오류는 콘솔에만 나타납니다. 파일에서 표준 오류도 얻으려면 다음을 사용할 수 있습니다.

someCommand 2>&1 | tee someFile

(출처 : 쉘에서 "2> & 1"은 무엇입니까? ). 마지막으로 위의 두 명령 모두 파일을 자르고 깨끗하게 시작합니다. 일련의 명령을 사용하는 경우 모든 명령의 출력 및 오류를 차례로 얻을 수 있습니다. 이 경우 "tee"명령에 -a 플래그를 사용할 수 있습니다.

someCommand 2>&1 | tee -a someFile

누군가가 출력을 추가하고 재정의하지 않는 경우 "tee"명령의 "-a"또는 "--append"옵션을 사용할 수 있습니다.

ls 2>&1 | tee -a /tmp/ls.txt
ls 2>&1 | tee --append /tmp/ls.txt

참고 URL : https://stackoverflow.com/questions/13591374/command-output-redirect-to-file-and-terminal

반응형