有一天我在我的系统上运行bleachbit。 我已经启用了擦除磁盘空间选项。 花了几个小时,我的磁盘空间完全被占满了(100GB左右)。 永久等待后,我决定终止程序并手动删除文件。
现在的问题是:我无法删除文件或目录。 我不能在目录中做一个ls。 我尝试了rsync -a –delete,擦除,rm,find&rm等不同的组合
我按照这里的指示,注意到“目录索引已满!” 我的日志中也有错误。 在一个拥有数百万个文件的目录上
我注意到,stat命令返回了超过GB的exception大的目录大小。 通常是4096或者成千上万。
nameh@labs ~ % stat kGcdTIJ1H1 File: 'kGcdTIJ1H1' Size: 1065287680 Blocks: 2080744 IO Block: 4096 directory Device: 24h/36d Inode: 9969665 Links: 2 Access: (0777/drwxrwxrwx) Uid: ( 1000/ nameh) Gid: ( 1000/ nameh) Access: 2014-10-31 07:43:08.848104623 +0530 Modify: 2014-10-31 07:43:19.727719839 +0530 Change: 2014-10-31 07:43:19.727719839 +0530 Birth: -
迄今为止,“ONLY”命令似乎能够删除这个目录中的文件是srm命令(由THC安全删除工具包)。 所有其他命令不起作用。 srm已经运行了20个小时,目前已经释放了大约1.1 GB的空间。 它使用最不安全的模式运行。
sudo srm -v -rfll kGcdTIJ1H1
想法?
编辑:我的问题是“如何快速删除目录?”。 就像几个小时左右,而不必花费数天的时间来删除文件。 rm -rf什么都不做。
我有类似的问题,其中一个分区充斥着数以百万计的文件,因此即使文件系统有近20GB的可用空间,我也无法创build任何文件,因为inode被耗尽,因此使用了所有inode节点。
所以我运行查找命令,删除1.4万个文件它花了相当长的一段时间,虽然因为发现和执行组合发现将传递每个文件执行function,然后运行rm命令的文件
cd / to /目录查找。 -type f -exec rm {} \;
要么
你可能想尝试xargs
找 。 -type f | xargs rm
两个命令都为我工作
希望能帮助到你。
你可以使用这个perl技巧:
perl -e 'chdir "/path/to/dir" or die; opendir D, "."; while ($n = readdir D) { unlink $n }'
这是做什么,首先去目录,打开它,并删除(取消链接)其中的所有文件没有得到所有文件的列表首先(这可能是rm窒息)。
诀窍不是我的,但Randal L. Schwartz's: http : //blogs.perl.org/users/randal_l_schwartz/2011/03/perl-to-the-rescue-case-study-of-deleting-a-large- directory.html
你可以尝试以下
找 。 -type d -print -delete#drop -print不看你删除了什么,我觉得这是最好的
找 。 -type f -exec rm {} \; 上面再说了
找 。 -mtime +29 -print | xargs ls -d