Je voulais être intelligent et comparer un fichier distant à un fichier local sans d'abord le télécharger manuellement. Je peux obtenir le contenu du fichier distant en
ssh user@remote-Host "cat path/file.name"
Cependant, la canalisation vers diff
ssh user@remote-Host "cat path/file.name" | diff path/file.name
me donne ceci:
diff: missing operand after `path/file.nae'
diff: Try `diff --help' for more information.
J'ai des clés ssh configurées, donc cela ne me demande pas de mot de passe. Quelle est une solution pour cela?
Essayez d'utiliser -
pour représenter l'entrée standard.
ssh user@remote-Host "cat path/file.name" | diff path/file.name -
Voici une solution: diff
semble accepter <(expr) comme arguments:
diff <(ssh \"cat path/file.name/") <(cat path/file.name)
Le piping dans diff est équivalent à l'exécution
diff path/file.name
puis, une fois qu'il est en cours d'exécution, en tapant tout le contenu du fichier.
Comme vous pouvez le voir, ce n'est pas ce que vous attendiez.
diff /tmp/localtempfile <(ssh -A -o StrictHostKeyChecking=no root@server "cat /tmp/remotetempfile")