如何从 EXT4 复制/移动包含大量内容的目录?

如何从 EXT4 复制/移动包含大量内容的目录?

所以我有一张带有 EXT4 文件系统的 Micro-SD 卡。上面有一堆我用来保存在这个结构中的文件:/YYYY-MM/folders/files- 里面的文件数量通常只有1-10个,但是里面folders的数量很多。我现在已将其更改为使其更美观,但是...foldersYYYY-MMYYYY-MM/YYYY-MM-DD/..

我需要复制/移动 µSD 卡上的所有文件。这适用于每个文件夹,除了2019-10我认为包含太多文件夹的文件夹。失败的命令(并非全部用于移动):

  • rsync(通过 ssh):“接收增量文件列表”约 2 天后,它断开连接
  • mv:它在 DEST 中创建目录,然后卡住
  • cp: 同样的情况,卡在了./2019-10/ -> DEST/2019-10/
  • find .: 一个小时什么也没做,我按 CTRL+C 后
  • ls: 和上面一样
  • du -chs 2019-10: 我让它运行了大约三天,没有任何反应

大小2019-10约为 15.5GB(由df -h其他所有内容移走后确定)。其数量folders(我知道是因为存在文件夹数据库)为2019-1040472 个。每个文件夹内平均有约 4 个文件。

现在我的问题是:如何将所有这些文件夹移出那里?

顺便说一句:起初我以为 µSD 卡有问题,这就是为什么我无法读取目录的原因,但以正常速度移动2019-112019-12工作得很好。它们总共包含相同数量的文件,但由于结构更好,它们在单个目录中从未包含超过 2000 个文件夹。

侧面信息:32GB SanDisk A1 µSD 卡(无假货)、内置笔记本电脑 SD 卡读卡器(性能最佳)、debian 10 操作系统(arch 可用)、8GB RAM 和 4x3.2GHz i7 CPU。


当我写这个问题时,我意识到了一个解决方案(经常发生,这太疯狂了)。我制作了一个脚本来遍历数据库,并为每个文件夹条目检索文件夹的名称,然后执行 a 来mv -v /sd-card/2019-10/${folderid}/ DEST移动它。在正常速度下工作得很好。

我仍然问这个问题,并想知道如果我没有数据库该怎么办,这可能对将来的其他人有用。

相关内容