我想传递一个tar命令和多个命令的输出,这些命令通过ssh处理tar流......这样的事情
tar -zcf - foo | ssh $host << EOF
tar -xf -
do-something-with-foo
do-other-things
EOF
不起作用,但这有可能吗?
答案 0 :(得分:1)
将所有内容包装在您传递给远程主机的生成脚本中。
{
echo 'uudecode -o- <<EOT | tar -xzf-'
tar -czf- foo | uuencode -m foo
echo EOT
echo do-something-with-foo
echo do-other-things
} | ssh -T $host
echo输出将在远程主机tar | uuencode
上运行
在本地运行。 uuencode的目的是让我们可以将输出包装到远程端的heredoc上,从而避免了严重的文件描述符杂乱的需要。