我需要通过网络复制大文件,但我不确定用于它的命令行。我一直在使用 rsync,但我觉得也许我可以先压缩文件?
答案1
rsync
当您指定 option 时已经提供压缩-z
。您应该避免对已经压缩的文件或二进制文件应用此选项,因为它只会带来额外的开销。
当使用 rsync 与 ssh 协议(默认)并且您只有有限的 CPU 资源并且安全性不是问题时,您还可以尝试指定-e ssh -c arcfour
使用较便宜的加密算法 (RC4)。不过,在现代 CPU 上,这不会产生任何大的差异。
您可能想要使用的其他有趣的论点:
-vP
一个漂亮的进度条并在中断时保留部分传输的文件,以便您可以在下次运行时从部分文件恢复rsync
-a
保留大多数(但不是全部!)文件元数据,例如权限和修改时间
答案2
我不确定我是否理解您是否在压缩文件时遇到问题或在传输文件时遇到问题,或者您只是有一个一般性问题。我会选择后者。
如果一个文件夹中有多个文件,您可以将它们压缩到一个存档 (.tar) 文件中:tar -cvf myfile.tar myfolder
然后,您可以使用非常好的压缩器来压缩该文件,例如 lzma: lzma myfile.tar
。请注意,您还可以使用-z
(gzip)、-j
(bzip2) 或--lzma
选项指示 tar 进行压缩,在这种情况下,您执行单个命令,例如:tar --lzma -cvf myfile.tar.lzma myfolder
。
rsync
然后,您可以使用或复制文件scp
,并解压缩它 ( lzma -d myfile.tar.lzma
),然后tar -xvf myfile.tar
在目标系统上将其解压 ( ) 一次。如果您使用单个命令,则用于提取的单个命令将为:tar --lzma -xvf myfile.tar.lzma
。
您还可以使用该-z
选项指示 rsync 进行压缩,而不必担心事先创建单文件存档。