Ich möchte laufen
something > file
auf einem entfernten System über ssh, aber wenn ich laufe
ssh host something > file
die Umleitung wird lokal als ssh etc > file
ausgeführt
Ich habe es mit '
versucht oder ''
oder dd
oder mit einem senkrechten Strich |
stattdessen, aber ich kann es nicht zum Laufen bringen. Wie kann das gemacht werden?
Akzeptierte Antwort:
Versuchen Sie:
ssh host 'something > file'
Hier ist eine erfundene Demonstration einer Möglichkeit, mit Weiterleitung, Pipes und Anführungszeichen umzugehen:
ssh host date -d yesterday | awk "'{print $1}'" > 'file" "with spaces.out'
Die Pipe und die Umleitung werden maskiert und sind nicht in einem gesamten äußeren Satz von Anführungszeichen enthalten, wodurch die Notwendigkeit reduziert wird, eine Ebene von Anführungszeichen zu maskieren. Die einfachen Anführungszeichen für den AWK-Befehl werden durch doppelte Anführungszeichen geschützt, die sie umgeben. Der Dateiname könnte auf die gleiche Weise geschützt werden, aber hier zeige ich, wie die einfachen Anführungszeichen die doppelten Anführungszeichen und das Escapezeichen schützen.