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")

関連情報