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
당신은 거기에 있을 필요가 없습니다
> cat
. 실제로 이는cat
현재 디렉터리에 호출되는 또 다른 파일을 생성하는 것입니다. input 을 원하면| cat
중복되므로 cat을 통해 파이핑하지 않고 출력을 리디렉션할 수 있습니다.emerge dev-qt/qtwayland > /home/fusion809/output.txt
절약할 것이다모두명령의 stdout 출력은 .allemerge
로 이동합니다/home/fusion809/output.txt
. 파일에 4줄만 있는 경우emerge
stdout에는 4줄만 인쇄되기 때문입니다.이머지는 에 더 많은 내용을 인쇄했을 수도 있습니다
stderr
. 이 내용도 확인하고 싶다면 시도해 보세요emerge dev-qt/qtwayland >& /home/fusion809/output.txt
. 그러면 stdout과 stderr이 동일한 파일로 리디렉션됩니다.>
와 차이점은>>
파일>
이 있으면 생성하기 전에 삭제되고,>>
파일이 이미 있으면 파일에 추가되고, 없으면 생성된다는 것입니다(셸 옵션에 따라 다름).출력을 파일로 캡처하려는 경우그리고동시에 화면에서 보려면 를 사용하십시오
tee
. 예를 들면 다음과 같습니다.
emerge dev-qt/qtwayland |& tee -a /home/fusion809/output.txt
tee
옵션 -a
은 지우고 덮어쓰는 대신 추가하도록 지시합니다.