2015-11-03 79 views
0

我有一个目录pics_temp这是soooo大,我甚至不能ls那个目录,它有数百万个文件。我想删除该文件。我不能使用rmrmdirxargs rm -rf,因为它会花费更多的时间,程序将自行终止,那么大的目录...是否有任何方法可以删除该目录?在linux删除目录(甚至不能ls该目录)

我可以编写shell脚本并将其放在cron作业中,或者是否有任何其他方式来删除该目录中的内容?

感谢您的帮助。

+0

我认为这是题外话,你应该把它发布在超级用户 –

+0

为什么你认为“程序会自行终止”?什么时间限制制度强加这种限制?即使它提前终止,它也会取得一些进展,进一步运行应该会取得更多进展,直到最终完成 –

+0

我需要该文件夹,我想删除该文件夹中的内容。如果我想删除那么大的工作更快的巨大目录。请给我你的宝贵意见 –

回答

1

尝试find

find pics_temp -mindepth 1 -print -delete 

find调用这样不会尝试缓存大量的文件名,并不会通过参数列表的最大长度或长的时间它可以采取派生进程数百万次的限制。 -mindepth 1将导致它删除pics_temp内的所有内容,但不是目录本身。

它也不依赖于printf %s\\n *ls或其他这样的命令,它们都具有在开始生成输出之前要求知道所有文件的缺点。

上面给出的命令有-print,它将在删除它们之前打印文件。这对告诉你某些事情实际上正在发生很有用,但会降低操作速度。当您确信它正在工作时,您可能需要删除-print,以便该命令运行得更快。

+1

这也需要时间来删除。 – 2015-11-03 11:11:20

+1

不管你怎么做,都需要很长时间才能删除那么多文件。 – chepner