Ich wollte schlau sein und eine entfernte Datei mit einer lokalen Datei vergleichen, ohne sie vorher manuell herunterzuladen. Ich kann den Inhalt der Remote-Datei von erhalten
ssh user@remote-host "cat path/file.name"
Leiten Sie das jedoch an diff
ssh user@remote-host "cat path/file.name" | diff path/file.name
gibt mir das:
diff: missing operand after `path/file.nae'
diff: Try `diff --help' for more information.
Ich habe ssh-Schlüssel eingerichtet, daher werde ich nicht zur Eingabe eines Passworts aufgefordert. Was ist eine Problemumgehung dafür?
command-line
pipe
diff
user394
quelle
quelle
-
), können Sie verwenden/dev/stdin
. zBdiff file1 /dev/stdin
Antworten:
Versuchen Sie,
-
mit die Standardeingabe darzustellen.ssh user@remote-host "cat path/file.name" | diff path/file.name -
quelle
Hier ist eine Problemumgehung: Scheint
diff
<( expr ) als Argumente zu akzeptieren :quelle
/dev/fd
:diff
sieht so etwas wie/dev/fd/3
auf der Kommandozeile).diff -y <(xmllint --format "${1}") <(xmllint --format "${2}")
was ich jetzt die ganze Zeit benutze.diff <(plutil -convert xml1 -o -- "${1}") <(plutil -convert xml1 -o - -- "${2}")
Piping in diff ist gleichbedeutend mit running
diff path/file.name
und dann, sobald es ausgeführt wird, den gesamten Inhalt der Datei eingeben.
Wie Sie sehen, haben Sie das nicht erwartet.
quelle
quelle
StrictHostKeyChecking=no
? Ansonsten eine gute Antwort.