我有一个目录./aggregated/
,其中有 7550 个子目录,每个子目录包含 250 个文件。aggregated
总共有 5.5GB。
我尝试过aggregated
通过删除rm -rf aggregated
,但花了几个小时。这是通过 USB3 连接的外部 2.5 HDD。它的文件系统是 ext4。它是加密的。机器的主磁盘驱动器是 SSD。到目前为止,我还没有能够成功删除该驱动器。
机器并不繁忙,并且拥有充足的 CPU 和 RAM 资源。有问题的驱动器是 sdb。它几乎是全新的 - 不时使用它不到 1 年,到目前为止还没有出现问题,我不认为这是驱动器问题。
pc ➜ code git:(master) ✗ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 731M 0 part /boot
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 465G 0 part
└─sda5_crypt 253:0 0 465G 0 crypt
├─mint--vg-root 253:1 0 433.1G 0 lvm /
└─mint--vg-swap_1 253:2 0 32G 0 lvm
└─cryptswap1 253:3 0 32G 0 crypt [SWAP]
sdb 8:16 0 931.5G 0 disk
└─sdb1 8:17 0 931.5G 0 part
└─luks-04638d71-b455-4a87-b0fa-8f0b8d96f97b 253:4 0 931.5G 0 crypt /media/myuser/toshiba
中的条目/etc/mtab
是:
/dev/mapper/luks-04638d71-b455-4a87-b0fa-8f0b8d96f97b /media/myuser/toshiba ext4 rw,nosuid,nodev,relatime,data=ordered 0 0
编辑:
我发现,如果我cd
进入文件夹并执行 ,我可以删除所有内容rm -rf *
。如果我尝试删除现在为空的aggregated
文件夹,rm -rf aggregated
它只会停留在那里。不确定如何调试/排除故障。
答案1
在 Linux 中删除文件的最快方法之一是使用 Perl。导航到父目录并运行以下命令:
perl -e 'for(<*>){((stat)[9]<(unlink))}'
如果你对 Perl 不太熟悉,可以使用带标志find
的命令-delete
来删除文件。以下命令将删除所有文件:
find ./ -type d,f -delete
注意:使用-type d,f
将删除文件和目录,如果只想删除文件,请使用-type f
这是一篇文章基准测试批量删除文件来自Linux系统。
答案2
通常,如果目录中有太多且很大的文件,运行该命令rm -rf
将无济于事,因为它可能导致服务器挂起,这是我通常使用的命令:
ls -1 | xargs rm -rfv
一些输出:
# ls -1 | xargs rm -rfv
removed 'NameOfFileOrDir'
笔记:
- 您必须位于将被删除的目录中
ls -f
:将列出您的文件xargs rm -rfv
:将使用详细操作运行删除
希望这会有所帮助。