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?
Tente usar -
para representar a entrada padrão.
ssh [email protected] "cat path/file.name" | diff path/file.name -
Aqui está uma solução alternativa: diff
parece aceitar <(expr) como argumentemnts:
diff <(ssh \"cat path/file.name/") <(cat path/file.name)
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.
diff /tmp/localtempfile <(ssh -A -o StrictHostKeyChecking=no [email protected] "cat /tmp/remotetempfile")