通常,要在 Linux 终端删除一个档案,我们使用 rm 命令(删除档案)、 shred 命令(安全删除档案)、 wipe 命令(安全擦除档案)或者 secure-deletion 工具包(一个安全档案删除工具集合)。
我们可以使用上述任意的工具来处理相对较小的档案。如果我们想要删除超大的档案/资料夹,比如大概 100-200GB,在删除档案(I/O 排程)所花费的时间以及 RAM 占用量方面,就没有你想的那么简单。
在本教程中,我们会解释如何在 Linux 中有效率并可靠地删除大档案/资料夹。
我们的主要目标是使用一种不会在删除大档案时拖慢系统的技术,合理地占用 I/O 。我们可以用 ionice 命令实现这个目标。
在 Linux 中使用 ionice 命令删除超大(200GB)档案
ionice 是一个可以对另一个程式设定或获取 I/O 排程级别和优先顺序的有用程式。如果没有给出引数或者只有 -p 引数,那么 ionice 将会查询该程序的当前的 I/O 排程级别以及优先顺序。
如果我们给出命令名称,如 rm 命令,它将使用给定的引数执行此命令。要获取或设定排程引数,请指定 [程序的 PID],如下:
# ionice -p PID
要指定名字或者排程的数字,使用(0 表示无、 1 表示实时、 2 表示尽力、 3 表示空闲)下面的命令。
以下命令表示 rm 会属于空闲 I/O 级别,并且只在其他程序不使用的时候使用 I/O:
—- Deleting Huge Files in Linux —–
# ionice -c 3 rm /var/logs/syslog
# ionice -c 3 rm -rf /var/log/apache
如果系统中没有很多空闲时间,那么我们希望使用尽力排程级别,并且使用低优先顺序:
# ionice -c 2 -n 6 rm /var/logs/syslog
# ionice -c 2 -n 6 rm -rf /var/log/apache
注意:要使用安全的方法删除大档案,我们可以使用先前提到的 shred 、 wipe 以及 secure-deletion 工具包中的不同工具,而不是 rm 命令。