我必须移动大约 320,000 个文件、80,000 个文件夹(仅 100 Gb)的数据。有些文件大于 1GB,但大多数小于 1kB。
我看过复制文件的最快方法但我不确定这些有多大用处,我的问题不在于纯传输速率,而在于 Windows 处理 320,000 个文件的 IO 速度有多快。
您认为使用 xcopy、robocopy、teracopy 或 fastcopy 是否能获得速度上的优势?
我们花了很长时间(超过 12 小时)才复制一次(使用 robocopy),我不想再这样做了。我该怎么做才能加快速度?
该内容位于 USB 2.0 外部驱动器上。
答案1
像 robocopy 这样的工具将是你最好的选择。USB 驱动器无法处理大量的 IO。
我使用 robocopy 将数百万个小文件推送到 USB 驱动器或从 USB 驱动器推送。虽然需要花费一些时间,但可以完成工作。
答案2
正如 mrdenny 所说,Robocopy 是最好的选择,部分原因是它的稳定性。我能给出的最佳建议是,如果您确定要移动的文件是干净的,则在移动文件时禁用防病毒软件。您真的不想因为扫描所有这些文件而产生开销。
答案3
显然还有比这里提到的所有方法更快的方法。更快,但灵活性较差 :-)如果你已经把文件放在一个单独的分区上,你可以复制整个分区到目标磁盘。
我不知道是否有任何免费的 Windows 工具可以完成这项工作(支持 VSS 的工具会更完美),但您肯定可以从 Ghost CD 或 Partition Magic CD 启动,或者启动 Linux 独立 CD。在 Linux 中,您只需要dd
分区,或者ntfsclone
如果这恰好是 NTFS 分区。
答案4
如果我是你,我会将外部硬盘更换为 Firewire,其传输速度比 USB2 快很多。
我认为将文件打包成单个“tar”,然后传输文件可能会节省一些时间。因为它减少了 I/O 时间,因为您只复制 1 个大文件,与数千个文件相比,我相信它消耗的资源也更少(在复制阶段)。或者您可以将 tar 流直接传输到您的 USB 驱动器。