diff를 파이프할 수 없나요?

diff를 파이프할 수 없나요?

먼저 수동으로 다운로드하지 않고 스마트하게 원격 파일을 로컬 파일과 비교하고 싶습니다. 다음을 통해 원격 파일의 내용을 얻을 수 있습니다.

ssh user@remote-host "cat path/file.name"

그러나 그것을 파이핑diff

ssh user@remote-host "cat path/file.name" | diff path/file.name

나에게 이것을 주었다:

diff: missing operand after `path/file.nae'
diff: Try `diff --help' for more information.

비밀번호를 묻는 메시지가 표시되지 않도록 ssh 키를 설정했습니다. 해결책이 있나요?

답변1

-표준 입력을 나타내는 데 사용됩니다 .

ssh user@remote-host "cat path/file.name" | diff path/file.name -

답변2

해결 방법은 다음과 같습니다. diff<(표현) 인수로 :

diff <(ssh \"cat path/file.name/") <(cat path/file.name)

답변3

파이프를 통해 diff를 입력하는 것은 실행하는 것과 같습니다.

diff path/file.name

그런 다음 실행되면 파일의 전체 내용을 입력하십시오.

보시다시피 이것은 당신이 기대하는 것이 아닙니다.

답변4

diff /tmp/localtempfile <(ssh -A -o StrictHostKeyChecking=no root@server "cat /tmp/remotetempfile")

관련 정보