如何通过ssh解压缩多个tar文件?

Car*_*tem 5 ssh bash tar

我试图通过ssh解压多个tar文件:

ssh user@hostname "cat /dir/file*.tgz" | tar xvzf -
Run Code Online (Sandbox Code Playgroud)

以上仅适用于远程服务器上的第一个文件匹配.本地(dest)服务器只接收一个文件.已验证通配符匹配多个文件.

还有另一种方法吗?

Paŭ*_*ann 4

(第一次尝试失败后进行编辑:)

另一种想法是避免多次ssh调用scp(因为这需要每个文件之间至少有一次往返):

ssh user@hostname 'tar cf - /dir/file*.tgz' | tar xf - --to-command='tar xzvf -'
Run Code Online (Sandbox Code Playgroud)

我们在服务器端再使用一次tar调用将所有文件包装在一起,在客户端使用第二次调用来再次打开它们,然后对每个条目tar调用一次。这与sehetar xzv的 base64-answer 类似,但效率更高,因为它不会炸毁文件。