假设/data/test目录下含有数百万上千万的文件需要删除,可以选择的方式如下:

1.如果文件名不包含空白符、引号等特殊字符,则可以使用如下命令:

find /data/test -type f |xargs rm -f

2.如果文件名包含空白符、引号等特殊字符,则在linux中使用如下命令:

find /data/test -type f -print0 |xargs -0 rm -f

而我所用的AIX7.1平台的xargs不支持-0选项,于是决定采用方式3:c语言写段代码删除。

3.c语言删除代码

该代码删除800万量级的文件时可以,删除2000万量级的文件时出现错误:Value too large to be stored in data type,于是又回到使用find ... rm的方法,具体命令参加方法四。

以下代码只假设要删除的目录中全是要删除的文件;如果有子目录,应该做递归删除;如果有条件的删除,可以使用stat函数获取每个文件的信息,然后判断文件信息是否满足删除条件再进行操作。

 #include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h> #define MAX_FILE_NAME_LEN 256 void clean(const char *dirName,int max){
DIR *dir;
struct dirent *ent;
int n=;
char fullFileName[MAX_FILE_NAME_LEN]; dir=opendir(dirName);
if(dir==NULL){
printf("open dir error:%s\n",dirName);
return;
}
while((n<max) && ((ent=readdir(dir))!=NULL) ){
if(strcmp(ent->d_name,".")== || strcmp(ent->d_name,"..")== )
continue;
sprintf(fullFileName,"%s/%s",dirName,ent->d_name); if(remove(fullFileName)==)
printf("delete file ok: %s\n",ent->d_name);
else
printf("delete file fail: %s\n",ent->d_name);
n++;
}
printf("%d files deleted.\n",n);
closedir(dir);
}
void main(int argc,char *argv[]){
char dirName[MAX_FILE_NAME_LEN]="/data/test";
int max=;
if(argc>)
strcpy(dirName,argv[]);
if(argc>)
max=atoi(argv[]);
clean(dirName,max);
}

4.使用find + rm命令删除2000万级的文件

find /data/test -type f -exec rm {} \; &

AIX7.1删除大批量文件(百万级、千万级)的更多相关文章

  1. Linux rm删除大批量文件

    在使用rm删除大批量文件时,有可能会遭遇"参数列太长"(Argument list too long)的问题.如下所示 [oracle@DB-Server bdump]$ rm - ...

  2. Mysql limit 优化,百万至千万级快速分页,--复合索引的引用并应用于轻量级框架

    MySql 性能到底能有多高?用了php半年多,真正如此深入的去思考这个问题还是从前天开始.有过痛苦有过绝望,到现在充满信心!MySql 这个数据库绝对是适合dba级的高手去玩的,一般做一点1万篇新闻 ...

  3. Linux rm删除大批量文件遇到 Argument list too long

    在使用rm删除大批量文件时,有可能会遭遇“参数列太长”(Argument list too long)的问题.如下所示   [oracle@DB-Server bdump]$ rm -v epps_q ...

  4. orcl 如何快速删除表中百万或千万数据

    orcl 数据库表中数据达到上千万时,已经变的特别慢了,所以时不时需要清掉一部分数据. bqh8表中目前有10000000条数据,需要保留19条数据,其余全部清除掉. 以下为个人方法: 1.首先把需要 ...

  5. MySQL 百万级分页优化(Mysql千万级快速分页)

    以下分享一点我的经验 一般刚开始学SQL的时候,会这样写 : SELECT * FROM table ORDER BY id LIMIT 1000, 10; 但在数据达到百万级的时候,这样写会慢死 : ...

  6. 如何优化MySQL千万级大表

    很好的一篇博客,转载 如何优化MySQL千万级大表 原文链接::https://blog.csdn.net/yangjianrong1985/article/details/102675334 千万级 ...

  7. MySQL 百万级分页优化(Mysql千万级快速分页)(转)

    http://www.jb51.net/article/31868.htm 以下分享一点我的经验 一般刚开始学SQL的时候,会这样写 复制代码 代码如下: SELECT * FROM table OR ...

  8. 【源码】rm zip 删除文件夹中大量的小文件 百万 扫描文件时间

    rm  删除文件夹中大量的小文件 百万 迟迟未删除 在扫描文件? rm删除命令源码分析 - ty_laurel的博客 - CSDN博客 https://blog.csdn.net/ty_laurel/ ...

  9. oracle 快速删除大批量数据方法(全部删除,条件删除,删除大量重复记录)

    oracle 快速删除大批量数据方法(全部删除,条件删除,删除大量重复记录) 分类: ORACLE 数据库 2011-05-24 16:39 8427人阅读 评论(2) 收藏 举报 oracledel ...

随机推荐

  1. python 中if-else的多种简洁的写法

    因写多了判断语句,看着短短的代码却占据来好几行,于是便搜下if-else简洁的写法,结果也是发现新大陆 4种: 第1种:__就是普通写法 a, b, c = 1, 2, 3 if a>b: c ...

  2. PHP 生成全局唯一id

    直接上代码: function generate_global_uniqid() { $prefix = md5(microtime(true)); // 生成唯一ID发生器 prefix,如果为服务 ...

  3. 2018 Multi-University Training Contest 1 Distinct Values 【贪心 + set】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6301 Distinct Values Time Limit: 4000/2000 MS (Java/Ot ...

  4. shiro权限配置的细节问题&认证

    细节: ---[urls]部分配置,其格式是    url=拦截器[参数] ,拦截器[参数] ---如果当前请求的 url 匹配 [urls] 部分或者某个url模式,将会执行配置的拦截器 ---an ...

  5. springmvc进阶(5):mvc:default-servlet-handler详解

    我们在配置dispatchServlet时配置<url-pattern>/</url-pattern>拦截所有请求,这时候dispatchServlet完全取代了default ...

  6. mavan下scala编译中文乱码的问题.以及内存溢出问题解决

    网上都没有找到我这个问题.都是自己解决的.也不知道后来者能不能遇到 关键字: java.lang.StackOverflowError scala not found scala <config ...

  7. .net MVC 页面页面跳转后提示消息实现办法

    mvc在RedirectToAction之后,会清理掉ViewData中的所有数据,因此通过ViewData给下一个页面传递提示消息不太好,如果是通过参数方式传递,刷新跳转后的页面时,消息还会再次提示 ...

  8. MATLAB PCHIP函数一阶求导分析

    MATLAB PCHIP函数一阶求导分析 摘要:本文首先根据三次立方插值的一般表达式,得出分段三次立方插值时,每个小区间上的各次项系数.分析发现,三次项.二次项.一次项系数都与小区间端点处的一阶导数值 ...

  9. 浮动产生的高度坍塌解决方法以及使用siblings()方法获取同级元素

    高度坍塌:如果一个没有设置高度div里的元素都是浮动元素,这个时候就可能产生高度坍塌,因为div的高度都是普通元素撑起来的,div里的元素浮动之后,元素就会脱离文档流,所以父级的div高度就可能为零, ...

  10. 一点一点看JDK源码(五)java.util.ArrayList 后篇之SubList

    一点一点看JDK源码(五)java.util.ArrayList 后篇之SubList liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) S ...