1
22
对于从文件系统中删除目录,rm是最快的选项。 在Linux上,有时我们在ramdisk上进行构建(几GB),它的删除速度非常快:)您也可以尝试不同的文件系统,但在AIX/Solaris上,您可能没有很多选项… 如果您的目标是让目录$dir为空 现在 ,您可以重命名它,稍后从background/cron作业中删除它:
另一个技巧是为$dir创建一个单独的文件系统,当您想删除它时,只需重新创建文件系统即可。像这样:
|
2
17
我忘记了这个技巧的来源,但它起作用:
|
3
5
至少在AIX上,您应该使用逻辑卷管理器LVM。我们所有的系统都将所有的物理硬盘打包成一个卷组,然后从中创建一个大的Honkin文件系统。 这样,您可以随意向您的计算机添加物理设备,并将文件系统的大小增加到您需要的任何内容。
我看到的另一个解决方案是在每个文件系统上分配一个垃圾目录,并使用
基本上,有一个
然后,当您希望回收该文件系统上的特定目录时,请使用如下内容:
在接下来的十分钟内,您的磁盘空间将开始恢复。这个
垃圾目录与要删除的目录位于同一个文件系统上,这一点很重要,否则您将拥有大量的复制/删除操作,而不是相对快速的移动。 |
4
3
如果
快速删除的一个选择是使用循环设备,例如:
“hole”程序是我自己编写的一个程序,它使用“hole”而不是磁盘上分配的块来创建一个大的空文件,速度快得多,在真正需要它之前不会占用任何磁盘空间。 http://sam.nipl.net/coding/c-examples/hole.c 我刚刚注意到gnu coreutils包含一个类似的程序“truncate”,因此如果您有这样的程序,可以使用它来创建图像:
现在,您可以使用mnt temp下的挂载映像作为构建的临时存储。完成操作后,请执行以下操作将其移除:
我想你会发现删除单个大文件比删除大量小文件要快得多! 如果你不想编译我的“hole.c”程序,你可以使用dd,但这要慢得多:
|
5
3
冗长乏味的细节:每个文件系统对象都由文件系统中的inode表示,该inode具有文件系统范围内的、inode的平面数组。
目录
如果不先删除它的子级,那么子级将保持分配状态,但没有任何指向它们的指针。(
[1]对于所有的文件系统来说,这可能并不完全正确,而且可能有一个文件系统按照您描述的方式工作。它可能需要类似垃圾收集器的东西。然而,我所知道的所有普通的 行为 与fs对象一样,inode拥有这些对象,目录也是name/inode-number对的列表。 |
6
2
我认为实际上除了你引用的“rm-rf”来删除你的目录之外,没有别的了。 为了避免反复手动操作,您可以每天cron一个脚本,该脚本递归地删除构建根目录的所有构建目录(如果它们“足够旧”),如下所示:
(此处mtime+4表示“任何超过4天的文件) 另一种方法是配置构建器(如果它允许这样做),将前一个构建与当前的构建粉碎。 |
7
2
使用 perl-e'(<*>)((stat)[9]<(unlink))' 请参阅以下链接: http://www.slashroot.in/which-is-the-fastest-method-to-delete-files-in-linux |
8
1
我也在调查这个。 我有一个60多万个文件的目录。 RM*会失败,因为条目太多。
所以,我一次写了一个简短的脚本给rm许多文件。每5秒获取大约1000个文件。其思想是尽可能多地将文件放入一个rm命令中,以提高效率。
|
9
1
在Solaris上,这是我找到的最快的方法。
如果有路径奇怪的文件,请使用
|
10
0
我不得不在Windows中删除超过30000个文件。我安装了Cygwin。幸运的是,我在一个数据库中拥有所有的主目录。使用rm-rf创建了for循环并基于行输入和删除 |
11
0
需要先从AWS EBS 1 TB磁盘(ext3)上的几十个目录中删除700 GB,然后再将其余部分复制到新的200 GB XFS卷。它花了几个小时的时间,使容量保持在100%的西澳州。由于磁盘IO和服务器时间不空闲,因此每个目录只占用了一小部分时间。 何处/开发/ SDB 是任意大小的空卷 目录删除=/ebs/var/tmp/ mount/dev/sdb$目录\要删除 nohup rsync-avh/ebs//ebs2/ |
12
0
我编写了一个小的Java应用程序RdPro(递归目录清除工具),它比RM快。它还可以删除用户在根目录下指定的目标目录。适用于Linux/Unix和Windows。它同时具有命令行版本和GUI版本。 |
ebk · 从一列中以最大值打印整行 6 年前 |
CodeDevotion · 在AIX上将行转换为列时,AWK不打印列 8 年前 |
user2260984 · 如何使用shell脚本在特定列中附加/更新数据 10 年前 |
Gerald Chu · AIX:_snw中的malloc(无符号长)? 10 年前 |
LonelySoul · 调用宏变量中的系统输出 11 年前 |