我有一个名为的目录pics_temp
,它非常大,我什至不能ls
使用那个目录,它有数百万个文件。我想删除那个文件。我不能使用rm
or rmdir
and xargs rm -rf
,因为它需要更长的时间并且程序将自行终止,那个目录很大......有什么办法可以删除那个目录吗?
我可以编写 shell 脚本并将其放入 cron 作业中,还是有其他方法可以删除该目录中的内容?
谢谢你的帮助。
试试find
。
find pics_temp -mindepth 1 -print -delete
find
像这样调用不会尝试缓冲大量文件名,并且不会受到参数列表的最大长度或分叉进程数百万次所需的时间的限制。-mindepth 1
将导致它删除里面pics_temp
的所有内容,但不会删除目录本身。
它也不依赖printf %s\\n *
orls
或其他此类命令,这些命令都有一个缺点,即在开始生成输出之前需要知道所有文件。
上面给出的命令有-print
,它将在删除文件之前打印文件。这可能有助于告诉您某些事情正在实际发生,但它会减慢操作速度。当您确信它正在工作时,您可能希望删除-print
以便命令运行得更快。