博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AIX7.1删除大批量文件(百万级、千万级)
阅读量:6811 次
发布时间:2019-06-26

本文共 1854 字,大约阅读时间需要 6 分钟。

假设/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函数获取每个文件的信息,然后判断文件信息是否满足删除条件再进行操作。

1 #include 
2 #include
3 #include
4 #include
5 6 #define MAX_FILE_NAME_LEN 256 7 8 void clean(const char *dirName,int max){ 9 DIR *dir;10 struct dirent *ent;11 int n=0;12 char fullFileName[MAX_FILE_NAME_LEN];13 14 dir=opendir(dirName);15 if(dir==NULL){16 printf("open dir error:%s\n",dirName);17 return;18 }19 while((n
d_name,".")==0 || strcmp(ent->d_name,"..")==0 )21 continue;22 sprintf(fullFileName,"%s/%s",dirName,ent->d_name);23 24 if(remove(fullFileName)==0)25 printf("delete file ok: %s\n",ent->d_name);26 else27 printf("delete file fail: %s\n",ent->d_name);28 n++;29 }30 printf("%d files deleted.\n",n);31 closedir(dir);32 }33 void main(int argc,char *argv[]){34 char dirName[MAX_FILE_NAME_LEN]="/data/test";35 int max=10;36 if(argc>1)37 strcpy(dirName,argv[1]);38 if(argc>2)39 max=atoi(argv[2]);40 clean(dirName,max);41 }

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

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

 

转载于:https://www.cnblogs.com/cloudwind2011/p/9430027.html

你可能感兴趣的文章
怎么修改阿里云企业邮箱LOGO等信息?
查看>>
单链表的操作和函数指针的基本使用
查看>>
MySQL---数据库从入门走向大神系列(十)-Connection对象池、装饰模式与动态代理模式...
查看>>
阿里云oss挂载到linux本地文件系统
查看>>
接班人不是克隆出来的:华为再显接班难
查看>>
把自1970年1月1日以来的秒数转化成年月日
查看>>
NetApp公司利用IBM沃森打造一款名为Elio的卡通机器人
查看>>
微信红包限额提升方法
查看>>
log file sync 等侍值高的一般通用解决办法
查看>>
《maven实战》学习笔记7——maven项目版本管理和灵活构建
查看>>
嵌入式 linux 查看内存
查看>>
mysql 协议的server状态标识
查看>>
CSDN去广告小脚本
查看>>
辟谣!Java 9使用指南10大误解,你中了几条?
查看>>
KSQL,用于Apache Kafka的流数据SQL引擎
查看>>
Zeppelin对Spark进行交互式数据查询和分析
查看>>
漂亮的后台界面PSD下载
查看>>
REST_FRAMEWORK加深记忆-第二次练习官方文档2
查看>>
NGINX配置小随笔
查看>>
大数据能帮企业抓住网络入侵者吗?
查看>>