ti-enxame.com

Não pode entrar no diff?

Eu queria ser inteligente e comparar um arquivo remoto com um arquivo local sem primeiro fazer o download manualmente. Eu posso obter o conteúdo do arquivo remoto

ssh [email protected] "cat path/file.name"

No entanto, canalizando isso para diff

ssh [email protected] "cat path/file.name" | diff path/file.name

me dá o seguinte:

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

Eu tenho chaves ssh configuradas, por isso não está me solicitando uma senha. O que é uma solução alternativa para isso?

81
user394

Tente usar - para representar a entrada padrão.

ssh [email protected] "cat path/file.name" | diff path/file.name -

99
Hemant

Aqui está uma solução alternativa: diff parece aceitar <(expr) como argumentemnts:

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

Canalizar para diff é equivalente a executar

diff path/file.name

e depois, quando estiver em execução, digite todo o conteúdo do arquivo.

Como você pode ver, não é o que você esperava.

4
Macha
diff /tmp/localtempfile <(ssh -A -o StrictHostKeyChecking=no [email protected] "cat /tmp/remotetempfile")
1
Vlad