Answers:
您可以使用ssh命令执行此操作,只需告诉tar
您在其标准输出上创建存档即可:
ssh remote.example.com 'cd /path/to/directory && tar -cf - foo | gzip -9' >foo.tgz
如果您想在另一台计算机上进行许多文件操作,但对于一次创建存档来说过于费力,另一种方法是使用SSHFS(FUSE文件系统)挂载远程计算机的文件系统,这种方法比较方便。您应该在SSH级别启用压缩。
mkdir ~/net/remote.example.com
sshfs -C remote.example.com:/ ~/net/remote.example.com
tar -czf foo.tgz -C ~/net/remote.example.com/path/to/directory foo
tar -cf - foo
创建(-c
)存档。使用最佳(最慢)压缩方法。如果您不在乎,则可以使用。-f -
foo
gzip -9
ssh remote.example.com tar cz /path/to/directory/foo > foo.tar.gz
通过仅压缩传输文件来复制目录或文件的简单方法:
$ ssh domain.net 'ls foo'
file1 file2
$ ssh domain.net 'tar czf - foo' | tar xz
$ ls foo
file1 file2
tar
存档存储在预期的本地计算机上。
tar xz
管道出了更简单,更可读的例子。
tar -cf - foo | gzip -9
而不是tar -czf - foo
或tar -cz foo
?