可能重复:
在一个巨大的目录树上执行rm -rf需要几个小时
我正在计算集群(Scientific Linux)上运行一个模拟程序,该程序生成数十万个primefaces坐标文件。 但是我在删除文件时遇到了问题,因为rm -rf从未完成,也没有完成
find . -name * | xargs r
没有办法从目录树中取消这个目录的链接吗? 存储单元被其他数百人使用,因此重新格式化不是一种select。
谢谢
我通常使用像这样的东西:
find ./directoryname -type f -name '*file-pattern*' -exec rm {} +
find命令也可以使用-delete标志。
find ./directoryname -type f -name '*file-pattern*' -delete
这些文件的代是一个问题/错误? 在应用程序级别有什么可以帮助吗?
我的猜测是你正在运行一个奇怪的文件types,阻止rm完成。 尝试类似
find . -type d -o -type f | xargs rm -rf --
如果你不介意没有获得空闲空间,并且所有文件重新出现在/lost+found在下一个fsck /lost+found ,那么只要取消链接目录将是完全可能的。
删除这些文件并不是一件耗时的工作,这是所有文件系统维护代码在后台进行整理所花费的时间,而且花费数百万小文件需要很长时间。 如果它们处于一个扁平的宽文件结构,而不是一个很深,很薄的文件结构(即很多目录中的许多文件而不是可能嵌套的目录中的许多文件),则需要更长的时间。 正如你已经注意到的,在某些情况下,它可以做更长的时间,而不是简单地重新创build文件系统。
如果这是我的问题,我会做一个自定义的分区来保存这些文件,另外,我可能会使用tmpfs ,它更好地devise用于临时文件的存储,并将减less文件系统重新创build时间。
方法1假设这些文件是要创build的,只需要在使用后删除即可。
如果可能的话,将所有这些文件, 只有这些文件 ,创build在一个独立的分区或磁盘。 如果是删除它们,请卸下该分区并对其进行格式化。 EXT4 (非EXT2)格式只需要几秒钟。
确保你没有保存信息/报告/等在同一个位置。
您可以直接或使用-o绑定选项将新分区或新磁盘挂载到原始位置。
方法2
思考一下,而不是单个文件,将所有这些数据放到数据库表中。 然后在使用后放下整个桌子。