如何在1小时内快速删除包含数百万文件和近18TB数据的整个目录?

如何在1小时内快速删除包含数百万文件和近18TB数据的整个目录?

我的备份程序不小心将整个其他驱动器多次备份到我的一个大型驱动器,因此占用了整个驱动器。我已经将该驱动器所需的内容备份到另一个驱动器,但事实证明,由于该驱动器已满,两年内未在此驱动器上进行备份,因此我不需要任何这些旧备份。

rm -rf不切实际,按照目前的速度可能需要几天或几周的时间。这是不可接受的。我认为格式化驱动器比删除驱动器更快,因为我现在不需要驱动器上的任何内容。这是唯一的方法吗?如果是这样,我应该如何执行此操作(什么命令最有效地删除分区并重新创建),或者如果有一种合理的方法可以在不格式化驱动器的情况下销毁 18TB 和数百万个文件,我更愿意这样做,因为格式化驱动器是风险极大(可能会因为一个拼写错误而意外删除另一个驱动器)。

销毁整个驱动器上这 18TB 和数百万个文件的最佳解决方案是什么?

答案1

如果文件系统上没有其他重要的内容,那么只需重新格式化它即可。与任何可能具有破坏性的事情一样,在按回车键之前要非常小心并检查(并仔细检查和三次检查)你的命令行。粗心才是问题所在,而不是正在运行的命令。

如果文件系统上还有其他重要数据,请对该数据进行备份并在格式化后恢复。

顺便说一句,您可能需要花时间考虑文件系统新格式的所有选项。首先弄清楚它主要用于什么,然后找出哪个文件系统最适合该用例。您可能想使用 XFS、btrfs 或 ZFS 来格式化它,而不是 ext4。

如果您不想备份/重新格式化/恢复(例如,因为您希望在删除不需要的文件时继续进行定期备份),则重命名该目录并使用相同的所有者、组和权限重新创建它,然后删除重命名的目录。例如(作为 root,使用 GNUchownchmod):

mv bigdata bigdata.old &&
  mkdir bigdata &&
  chown --reference=bigdata.old bigdata &&
  chmod --reference=bigdata.old bigdata &&
  rm -rf bigdata.old

这不会更快,但它允许在删除旧目录时继续使用驱动器。

注意:这假设您要删除的目录是挂载点的子目录,而不是挂载点本身。如果它是安装点,那么重新格式化是您的最佳选择。

相关内容