포티지의 출력을 txt 파일에 쓰는 방법은 무엇입니까?

포티지의 출력을 txt 파일에 쓰는 방법은 무엇입니까?

Ctrl나는 다른 명령(즉, ++ 로 시작하는 화면 전체 터미널)뿐만 아니라 tty에서 실행되는 포티지 명령의 출력을 작성할 수 있기를 원합니다. 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현재 디렉터리에 호출되는 또 다른 파일을 생성하는 것입니다. input 을 원하면 | cat중복되므로 cat을 통해 파이핑하지 않고 출력을 리디렉션할 수 있습니다.

  2. emerge dev-qt/qtwayland > /home/fusion809/output.txt절약할 것이다모두명령의 stdout 출력은 .all emerge로 이동합니다 /home/fusion809/output.txt. 파일에 4줄만 있는 경우 emergestdout에는 4줄만 인쇄되기 때문입니다.

  3. 이머지는 에 더 많은 내용을 인쇄했을 수도 있습니다 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은 지우고 덮어쓰는 대신 추가하도록 지시합니다.

관련 정보