Linux 如何在不在目标计算机上解压缩的情况下同时进行scp和压缩

Linux 如何在不在目标计算机上解压缩的情况下同时进行scp和压缩,linux,bash,Linux,Bash,我想要一种高效的方法,将一个巨大的目录scp到一台机器上,同时压缩目录。我只需要目标计算机中的压缩目录 不需要手动分两步操作就可以了吗?使用tar: tar cfz - /path/to/local|ssh user@remotehost 'cd /desired/location; tar xfz -' 本地tar将创建/压缩您的文件结构,并将其输出到stdout(-文件名),该文件通过ssh传输到远程主机上的tar,tar从stdin读取压缩流(-文件名),并提取内容 如果您只想写出压缩文

我想要一种高效的方法,将一个巨大的目录scp到一台机器上,同时压缩目录。我只需要目标计算机中的压缩目录

不需要手动分两步操作就可以了吗?

使用tar:

tar cfz - /path/to/local|ssh user@remotehost 'cd /desired/location; tar xfz -'
本地tar将创建/压缩您的文件结构,并将其输出到
stdout
-
文件名),该文件通过ssh传输到远程主机上的tar,tar从stdin读取压缩流(
-
文件名),并提取内容

如果您只想写出压缩文件,那么

 tar ... | ssh user@remotehoust 'cat - > file.tar.gz'

请看一下
rsync
实用程序。更灵活、更强大,它还可以通过
ssh
连接。您好,另一个问题是,我如何修改此命令以更直观地了解正在发生的事情。等待命令行返回有时会与参数
-v
混淆,例如
tar cfvz
tar xfvz