![通过网络使用“tar”创建压缩档案](https://linux22.com/image/1228647/%E9%80%9A%E8%BF%87%E7%BD%91%E7%BB%9C%E4%BD%BF%E7%94%A8%E2%80%9Ctar%E2%80%9D%E5%88%9B%E5%BB%BA%E5%8E%8B%E7%BC%A9%E6%A1%A3%E6%A1%88.png)
我想将本地磁盘映像复制到本地网络中的另一台计算机。这是一个很大的目录(大约 15 GB),为了加快速度,我使用了以下小技巧:
cd /Volumes/myserver
tar -cvzf image-dir.gz /Users/francis/image-dir/
对于解包我可以使用:
cd /
tar -xvzf /Volumes/myserver/image-dir.gz
这个想法是通过在网络上仅发送压缩数据来提高性能。但是,目前尚不清楚 tar 实际上是在数据通过网络发送之前还是之后进行压缩。有人知道吗?
也欢迎替代解决方案。
答案1
这有多有效取决于你的命令在哪儿执行,以及数据在哪儿。
假设:
- /卷/我的服务器是网络共享,
- /用户/弗朗西斯/图像目录位于客户端的本地驱动器上,并且
- 创建和提取命令都在执行客户,
我认为你是对的——没有未压缩的数据通过网络。
在创建案例中,您正在从本地驱动器读取未压缩的数据,对其进行压缩,然后将压缩数据写入网络驱动器。网络传输是压缩的。
在提取的情况下,您将从网络驱动器读取压缩数据,解压缩,并将解压缩的数据写入本地驱动器。同样,网络传输是压缩的。
答案2
我见过朋友使用管道tar
输出netcat
,但我搞不懂语法。手册页和快速网络搜索应该会有所帮助。