如何快速复制 900,000 个文件?

Joe*_*yga 9 file-transfer usb-storage

我需要将一些包含 900,000 个小文件,总计约 30 GB 的数据复制到 Windows 计算机。但是,它需要能够在一个半小时内完成复制和设置,而从 USB 硬盘上复制可能需要 5 个多小时,这主要是由于大量文件。有没有更好/更快的方法来处理这个问题,例如进行某种块复制?谢谢

Lee*_*son 8

如果可以将硬盘从 USB 接口移除并移至 SATA/ATA,我会将其安装在目标计算机中。正如其他人所指出的,您将获得更快的传输速度。对于复制,假设您使用的是 Windows,我会做一个简单的 ROBOCOPY。尽管还有其他选择,但它的速度与您真正希望的一样快。

ROBOCOPY /E /B /MT 'source' 'destination'
Run Code Online (Sandbox Code Playgroud)

不过,我会尽量避免压缩所有这些文件,压缩和移动的时间很可能会超过简单地移动文件。

*为robocopy添加了/MT选项。当您处于多线程环境中时,它可以大大加快传输速度。


dab*_*st1 7

对于大量文件,最好创建 tar 存档,以便处理更少的文件。如果您使用的是 USB 2.0 外置硬盘,您应该考虑使用 USB 3.0、eSATA 或使用快速本地网络。

你的源操作系统是什么?如果您的两个操作系统都是 Linux,您可以通过 tar、gzip 和 ssh 将文件通过管道传输到目标机器。您也可以在 Windows 上安装 cygwin 以获取 Windows 的此类功能。

更新:
使用 Tar 和 SSH 提高 SCP 速度”帖子描述了通过 ssh 发送 tar 内容所需的命令。

  • 举个例子,对于 1K 文件,我的千兆局域网能得到大约 1-5 MBps。对于大文件(每个千兆字节),我得到大约 80-90 MBps。这都是关于顺序读取的。 (2认同)

arc*_*rty 6

您可以尝试拍摄整个文件夹/驱动器的图像

在 Linux 系统上,您可以使用dd获取文件系统的原始副本并将其复制为单个大文件。

要将映像提取到 Windows,您可能需要安装 cygwin 或能够处理dd映像的程序。