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 user@remote-host "cat path/file.name"
Sin embargo, canalizando eso a diff
ssh user@remote-host "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?
command-line
pipe
diff
usuario394
fuente
fuente

-), puede usarlo/dev/stdin. por ejemplodiff file1 /dev/stdinRespuestas:
Intente usar
-para representar la entrada estándar.ssh user@remote-host "cat path/file.name" | diff path/file.name -fuente
Aquí hay una solución alternativa:
diffparece aceptar <( expr ) como argumentos:fuente
/dev/fd:diffve algo así como/dev/fd/3en su línea de comando).diff -y <(xmllint --format "${1}") <(xmllint --format "${2}")que ahora uso todo el tiempo.diff <(plutil -convert xml1 -o -- "${1}") <(plutil -convert xml1 -o - -- "${2}")Tubería en diff es equivalente a correr
diff path/file.namey luego, una vez que se está ejecutando, escribe todo el contenido del archivo.
Como puede ver, eso no es lo que esperaba.
fuente
fuente
StrictHostKeyChecking=no? De lo contrario, una buena respuesta.