通过 ssh 重定向标准输出

通过 ssh 重定向标准输出

我想跑步

something > file

通过 ssh 在远程系统上,但如果我运行

ssh host something > file

重定向在本地执行为ssh etc > file

'我已经用or ''or or尝试过dd用管道|代替,但我无法让它工作。如何才能做到这一点?

答案1

尝试:

ssh host 'something > file'

下面是处理重定向、管道和引号的方法的人为演示:

ssh host date -d yesterday \| awk "'{print $1}'" \> 'file" "with\ spaces.out'

管道和重定向被转义,而不是包含在整个外部引号集中,从而减少了转义一级引号的需要。 AWK 命令的单引号受其周围的双引号保护。文件名可以用同样的方式保护,但在这里我展示了单引号如何保护双引号和转义。

答案2

甚至更简单,而不是:

ssh host something > file

做:

ssh host "something > file"

答案3

建议的解决方案也适用于管道

ssh host 'some_command | some_other_command'

相关内容