it-swarm-es.tech

¿No se puede conectar a diff?

Quería ser inteligente y comparar un archivo remoto con un archivo local sin descargarlo primero manualmente. Puedo obtener el contenido del archivo remoto por

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

Sin embargo, canalizando eso a diff

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

me da esto:

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

Tengo configuradas las claves ssh, por lo que no me solicita una contraseña. ¿Qué es una solución para esto?

81
user394

Tratar de usar - para representar la entrada estándar.

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

99
Hemant

Aquí hay una solución alternativa: diff parece aceptar <(expr) como argumentos:

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

Tubería en diff es equivalente a correr

diff path/file.name

y luego, una vez que se está ejecutando, escribe todo el contenido del archivo.

Como puede ver, eso no es lo que esperaba.

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