fra*_*kus 21 ssh pipe io-redirection
我想跑
something > file
Run Code Online (Sandbox Code Playgroud)
通过 ssh 在远程系统上,但如果我运行
ssh host something > file
Run Code Online (Sandbox Code Playgroud)
重定向在本地执行为 ssh etc > file
我已经尝试过用'
or''
或dd
or|
代替管道,但我无法让它工作。如何才能做到这一点?
Den*_*son 14
尝试:
ssh host 'something > file'
Run Code Online (Sandbox Code Playgroud)
这是处理重定向、管道和引号的方法的人为演示:
ssh host date -d yesterday \| awk "'{print $1}'" \> 'file" "with\ spaces.out'
Run Code Online (Sandbox Code Playgroud)
管道和重定向被转义而不是包含在整个外部引号集中,减少了对一级引号进行转义的需要。AWK 命令的单引号受双引号保护。文件名可以用同样的方式保护,但在这里我展示了单引号如何保护双引号和转义符。
小智 13
甚至更简单,而不是:
ssh host something > file
Run Code Online (Sandbox Code Playgroud)
做:
ssh host "something > file"
Run Code Online (Sandbox Code Playgroud)