Tente usar -
para representar a entrada padrão.
ssh user@remote-host "cat path/file.name" | diff path/file.name -
Eu queria ser esperto e comparar um arquivo remoto com um arquivo local sem antes baixá-lo manualmente. Posso obter o conteúdo do arquivo remoto por
ssh user@remote-host "cat path/file.name"
No entanto, canalizar isso para diff
ssh user@remote-host "cat path/file.name" | diff path/file.name
me dá isso:
diff: missing operand after 'path/file.nae'
diff: Try 'diff --help' for more information.
Eu tenho as chaves ssh configuradas, por isso não está me solicitando uma senha. O que é uma solução para isso?
Aqui está uma solução alternativa: diff
parece aceitar
diff <(ssh \"cat path/file.name/") <(cat path/file.name)
Pipar no diff é equivalente a correr
diff path/file.name
e, depois de executar, digitar todo o conteúdo do arquivo.
Como você pode ver, não é o que você esperava.
diff /tmp/localtempfile <(ssh -A -o StrictHostKeyChecking=no root@server "cat /tmp/remotetempfile")
Tags command-line diff pipe