포티지의 출력을 txt 파일에 어떻게 쓰나요?

포티지의 출력을 txt 파일에 어떻게 쓰나요?

나는 tty에서 수행하는 다른 명령과 함께 포티지 명령의 출력을 작성할 수 있기를 원합니다(즉, Ctrl+ Alt+ 로 시작하는 화면 전체 터미널 , 여기서 n은 1에서 6 사이의 정수를 나타냅니다. 이 터미널은 다음과 같습니다). 내가 아는 한, 클립보드가 없는 곳에서는 텍스트 파일로 명령을 사용하기 시작했습니다 . 이제 나는 다음을 읽었습니다.Fngetty우분투 포럼적절하게 사용된다면 Unix 명령이 cat이를 수행할 수도 있을 것입니다. 불행하게도 제안된 명령을 따르면 emerge명령의 전체 출력이 텍스트 파일에 추가되지 않는 것 같습니다 . 내가 실행한 내용을 참조하세요.

emerge dev-qt/qtwayland > cat >> /home/fusion809/output.txt

여기서 fusion809는 내 사용자 이름이고, output.txt에 다음과 같은 4줄의 출력만 썼습니다.

Calculating dependencies  ....... .. ....... done!
[ebuild   R    ] media-libs/mesa-11.0.4  USE="-wayland*" ABI_X86="32*"
[ebuild   R    ] dev-qt/qtgui-5.5.1  USE="-egl* -evdev* -ibus*"
[ebuild   R    ] dev-qt/qtwayland-5.5.1  USE="-egl*"

나는 또한 다음을 시도했습니다.

emerge dev-qt/qtwayland > /home/fusion809/output.txt

그리고:

emerge dev-qt/qtwayland >> /home/fusion809/output.txt

둘 다 동일한 출력을 output.txt에 썼습니다.

답변1

당신은 올바른 길을 가고 있습니다. Unix/Linux에는 오류 스트림도 있습니다. 모든 명령은 표준 입력, 표준 출력 및 표준 오류를 얻습니다.

당신은 표준 출력으로 작업해왔습니다. 명령에서 표준 오류 스트림도 캡처하려면 2>. 예를 들어:

emerge dev-qt/qtwayland > emerge.out 2> emerge.err

이제 표준 출력을 원한다면그리고에 들어가는 오류같은파일을 사용하여 2>&1표준 오류 출력을 표준 출력과 동일한 위치로 보내도록 쉘에 지시합니다.

emerge dev-qt/qtwayland > emerge.out 2>&1

또한, 더 자세한 내용을 참조하고 배우려면 쉘 매뉴얼 페이지에서 언제든지 찾아볼 수 있습니다 man sh.

유익하고 깊이 생각한 질문을 보내주셔서 감사합니다!

답변2

  1. 거기는 필요하지 않습니다 > cat. 실제로 이는 cat현재 디렉토리에 호출되는 또 다른 파일을 생성하는 것입니다. 를 입력하려고 했다면 | cat불필요한 일이므로 cat을 통해 파이프하지 않고도 출력을 리디렉션할 수 있습니다.

  2. emerge dev-qt/qtwayland > /home/fusion809/output.txt절약할 것이다모두emerge명령 의 stdout 출력을 /home/fusion809/output.txt. 그것의 모든. 파일에 4줄만 있으면 emergestdout에 4줄만 인쇄되었기 때문입니다.

  3. discover 에 더 많은 내용을 인쇄했을 수도 있습니다 stderr. 그것도 캡처하고 싶다면 를 시도해 보세요 emerge dev-qt/qtwayland >& /home/fusion809/output.txt. 그러면 stdout과 stderr이 모두 동일한 파일로 리디렉션됩니다.

  4. >와 차이점 >>>파일을 만들기 전에 파일이 있으면 지우고, >>이미 있으면 파일에 추가하고, 없으면 파일을 만드는 것입니다(셸 옵션에 따라 다름).

  5. 출력을 파일로 캡처하려는 경우그리고동시에 화면에서 확인하려면 를 사용하세요 tee. 예를 들어:

emerge dev-qt/qtwayland |& tee -a /home/fusion809/output.txt

tee-a옵션은 지우고 덮어쓰는 대신 추가하도록 지시합니다.

관련 정보