在linux中删除目录(甚至不能ls那个目录)

时间:2015-11-03 01:12:41

标签: linux shell cron sh superuser

我有一个名为pics_temp的目录,它太大了,我甚至不能ls该目录,它有数百万个文件。我想删除该文件。我无法使用rmrmdirxargs rm -rf,因为它需要更长的时间,程序将自行终止,那个目录很大......有没有我可以删除该目录的方式吗?

我可以编写shell脚本并将其放在cron作业中,还是有其他方法可以删除该目录中的内容?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

尝试find

find pics_temp -mindepth 1 -print -delete
像这样被调用的

find不会尝试缓冲大量的文件名,也不会受到参数列表的最大长度限制,也不会长时间分叉进程数百万次。 -mindepth 1会导致它删除pics_temp内的所有内容,但不删除目录本身。

它也不依赖于printf %s\\n *ls或其他类似的命令,这些命令都有一个缺点,即在开始生成输出之前要求所有文件都已知。

上面给出的命令有-print,它会在删除文件之前打印文件。这对于告诉您实际发生的事情非常有用,但它会减慢操作速度。当您确信它正在工作时,您可能希望删除-print以便命令运行得更快。