如何清空具有大量文件/文件夹的Linux目录?

4

我在Linux中有一个目录,其中有数十万个文件,大约100 GB。我尝试使用“rm -f *”清空该目录,并收到以下错误消息:

>rm -f *
-ksh: rm: /bin/rm: cannot execute [Argument list too long]

当我尝试使用find命令时,我也遇到了同样的错误。我可以删除单个文件和组,如果我能找到一个足够小的表达式,但这可能需要几天时间来清空它们。有没有人知道更好的方法来清空一个大目录?


文件名有任何模式吗?这样你就可以编写一个脚本来迭代它们。即使没有模式,你也可以编写一个脚本来分组删除它们。 - Rodolfo
2
实际上,通常最好删除整个目录(rm -rf dir)并重新创建它,而不是清空它。 - Roman
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - mount986
1个回答

4

请尝试以下方法:

rm -R -f [your_directory_path]

那就手动重新创建你的目录,我相信这种方式比你尝试做的更容易:

mkdir [old_directory_name]

2
我确实考虑过这个问题,但是我的权限仅限于目录内的文件。对于我来说,实际的目录本身是只读的。显然,我可以让基础设施管理员来处理,但在周六晚上的开发问题中可用的人不多 :) - mount986
在Ubuntu中,在目录名称末尾加上星号,例如/*。 - AZ_

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接