호스트 이름과 [sudo] 줄을 쓰지 않고 로컬에서 SSH+sudo 출력을 캡처할 수 있습니까?

호스트 이름과 [sudo] 줄을 쓰지 않고 로컬에서 SSH+sudo 출력을 캡처할 수 있습니까?

SSH 명령 실행의 출력을 로컬로 작성할 때 호스트 이름 및 [sudo] 행을 억제할 수 있습니까?

예를 들어 서버에 SSH로 연결하여 실행하면 sudo <command>다음과 같이 표시됩니다 .

<hostname>
[sudo] password for user:

이것은 출력을 쓰는 파일에 기록됩니다. 사용하고 sudo <command> 2>&1 /dev/null있는데 선이 지워지지 않네요.

답변1

sudo <command> 2>&1 /dev/null아무것도 리디렉션되지 않습니다 /dev/null. 대신 다음과 같습니다.

  • 2개의 매개변수로 호출 sudo: <command>/dev/null. 두 번째 항목은 <command>실행 시 전달됩니다.
  • 오류 메시지를 표준 출력으로 리디렉션합니다.

다음은 간단한 시도입니다.

$ sudo ls 2>&1 /dev/null
/dev/null

참조: 귀하가 얻는 결과 ls /dev/null. 그러나 다음과 같은 작업을 수행할 수 있습니다...

$ sudo ls >ls_output.txt 2>/dev/null

이는 다음을 수행합니다.

  • sudo1개의 인수로 호출됨: ls.
  • 표준 출력을 로 리디렉션합니다 ls_output.txt.
  • 표준 오류를 로 리디렉션합니다 /dev/null.

위 명령을 사용하면 현재 작업 디렉토리의 내용이 나열되고 ls_output.txt그 안에 데이터는 없습니다.stderr

관련 정보