我有一个NTFS分区有一个文件夹,可以容纳超过五百万个目录。 每个目录包含更多的目录和文件。
我正在转移到SSD,我需要将所有这些数据复制到新的驱动器,但我遇到了问题。
像这样的目录将崩溃Windows资源pipe理器,所以我甚至没有尝试。
我的第一个尝试是robocopy ,过去运行良好。 但是当我试图做这个拷贝时,即使离开它几天,它也从未开始。 我想这是试图在开始复制之前索引一切。
你如何复制这个大小的目录?
我从来没有见过这样的robocopy失败,但如果它由于大小/预索引失败,那么为什么不写自己的脚本来复制? 我会写在PERL的东西,只是在每个文件的基础上复制,recursion地通过它。 您可以添加检查以查看文件是否已经存在相同的时间戳等
你也可以看看RichCopy是multithreading的。
正如其他一些答案所说,我从来没有见过RoboCopy这样失败 – AFAIK,它没有做任何索引,它只是从第一个目录开始,继续工作。
你有最新版本的RoboCopy? 在这个date之前,有一些旧版本可能会回到旧时代的NT版本,而这些版本可能会有更大的版本。
FWIW,这里是我的安装版本的头文件比较:
------------------------------------------------------------------------------- ROBOCOPY :: Robust File Copy for Windows :: Version XP010 -------------------------------------------------------------------------------
不知道你的分区上还有什么,但你可以使用一个Linux Live CD(如GPartEd),并将整个分区en-masse复制到新的驱动器。 作为一个奖励,如果你想改变分区的大小,GPartEd也会为你做。 然后删除你不想复制的内容。 🙂
有可能您的目录结构可能会遇到path长度问题。 NTFS允许比Explorer或CMD访问更长的path。 这需要一点创造力来处理。 通常这是由不使用任何一种方法的文件写入引起的,或者共享有一个目录,或者三个目录允许它工作。
for /D %%D in (*.*) do call copydir.cmd %%D [CopyDir.CMD] subst m: %1 m: xcopy *.* F:\newlocation\ /s/e/h/q/y subst m: /del
在目录结构的顶部运行该命令,以便切断所述目录结构的顶部,并希望使您的path足够小,以便对所有内容都可见。 使用您需要使用的任何复制工具而不是xcopy。
您可能需要使用像richcopy这样的multithreading,它允许您指定每个线程有多less个线程和多深。 我还没有尝试过500万个Dirs,但是我已经在数千个Dirs上使用过它,它比Robocopy更好。 我包里的另一个实用工具是XXcopy 。 这不是一样快,但有一些非常酷的目录克隆选项。 既然是命令行,我不认为它甚至会试图枚举结构,只是把它抽出来。
你可以使用Windows NTbackup或类似的工具来备份吗? 通常,当我移动大量数据时,我将从一台设备备份,然后恢复到另一台设备。
也许尝试好xcopy
我从来没有使用它,不能担保,但人们说TeraCopy的好处。
不是一个真正的答案,更多的是一个build议的攻击行:* nix的方式来做到这一点将使用tar cf - | tar xvf - tar cf - | tar xvf - ,本质上是要求tar创build一个存档文件,并直接将其导入到tar中以提取它(在其他地方)。 也许这可以在Windows上以类似的方式完成。
这可能听起来像一个坏的破解,但在过去几次复制巨大的目录结构时,我使用WinRAR压缩文件,然后解压缩到目标驱动器。
我知道,这并不是最优美的解决scheme,但是它的工作很有帮助。
这些天,我可能会尝试从cygwin实用程序使用rsync或tar。
我使用FastCopy( http://www.ipmsg.org/tools/fastcopy.html.en )。 它已经成为行业标准的开源复印机已有10多年了。 我wouldnt使用其他任何东西。
我会尝试的第一件事是RichCopy:
http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx?pr=blog
接下来我会尝试使用Ubuntu Live CD或Knoppix CD启动并进行RSYNC。
这里要记住的重要事情不仅是要复制文件,还要确保它们是通过INTACT复制的,而且没有任何损坏。
我已经使用rsync复制了数百万个文件(超过4百万个文件),并且certificate它非常可靠。
如果你不关心保留安全ACL,你可以通过cygwin使用rsync。 否则,find一种使用其他提到的实用程序(robocopy,richcopy,xcopy)来分解副本的方法可能是一种可行的方法。
Beyond Compare对这些types的文件操作留下了深刻的印象。 它有奖金,如果复制失败,或者你必须在以后继续,它知道从哪里开始,因为它支持只复制差异。