Linux超量文件删除

我的Ubuntu曾经有一个程序创建了70W+的文件夹,并且每个文件夹都不是空文件夹;如何删除这些文件资料小小的困扰了我,下面记录大批量文件删除。(注:文件夹是以数字命名,1,2,3…,70000,…)

文件删除

rm -rf xxx
参数含义:

  • r:删除文件夹,递归删除文件夹中的所有文件(包括文件夹中文件夹)
  • f: 强制删除

在这里,我的一个文件夹中包含了70W+的文件数据,使用该命令时会出现 参数列表过长 的错误信息。望文生义,就是文件太多导致的,那该如何删除呢?下面给大家介绍一个组合命令。

find 1* -name “*“ | xargs rm -rf “*“
详细解释:我们遇到的问题是参数列表过长,要删除的文件太多导致失败,那最简单的道理就是我不一下子全部删除这么多,我一小部分一小部分的删除。所以,这里前部分命令时查找符合条件的文件,后半部分是删除找到的文件。

  • find 1* -name “*“ :查找所有以“1”开头的文件夹名,“1*” 这里是正则项,
  • xargs rm -rf “*“:前部分find找到之后,调用该命令进行删除,这里的“*“ 对应前部分的 “*”
  • 注:这里的 -name “*“ 必须是“*“,后面的也必须是 ”*“,这样才能删除,我原本理解是find找到文件之后通过 ”-name“重新命名,可以任意取名,列如使用这个命令:find 1* -name “1” | xargs rm -rf “1”,按照我理解以为这样也可以成功,但是事实上实验发现,这样失败,必须是 ”*“ 才能删除。
朋友~给个赏馁!