linux下如何删除一百万个文件

今日QA发了个请求,要求删除某目录下指定格式的文件。

[[email protected] resin-3.1.9]# ls | wc -l
1013964

统计了下,有一百万多个文件!

而且文件的命名也很古怪,如“d:\temp\perf\1413787853558.html”...

直接用rm -f  *.html,不支持!

-bash: /bin/rm: Argument list too long

尝试用xargs,ls也不支持这么多的参数。

#ls *.html | xargs rm

-bash: /bin/ls: Argument list too long

再换个办法:

ls | grep "d:" | grep temp | grep perf | grep html | xargs rm -f

因为有\字符在文件名称中,无果。

小批量实验了几次,终于想到办法。

先把这些文件名称全部导入到一个文件中

ls | grep "temp" | grep "perf" | grep "d:" | grep "html" >xxx.remove

接着,跑一个for 循环,即可删除。

# for i in `cat xxx.remove`;do rm -f $i;done

时间: 2024-11-05 18:57:08

linux下如何删除一百万个文件的相关文章

Linux下的删除过期文件操作

在实际的软件开发项目中,经常会有实现删除过期文件的需求.即要求程序能够自动删除多长时间之前生成的文件.本文提供了一个示例代码,为相关的开发工作提供了参考. 程序如下(本程序用makefile进行编译): /*********************************************************************** 版权所有 (C)2014, Zhou Zhaoxiong.* * 文件名称: TestFileDelete.c* 内容摘要: 用于演示Linux下过期

linux下rsync+inotify实现服务器之间文件实时同步

先介绍一下rsync与inotify. 1.rsync 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等.随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件数量达到了百万甚至千万量级,扫描所

Linux下查找包含BOM头的文件和清除BOM头命令 2014-08-16 12:30:50

Linux下查找包含BOM头的文件和清除BOM头命令 2014-08-16 12:30:50 分类: 系统运维 查找包含BOM头的文件,命令如下: 点击(此处)折叠或打开 grep -r -I -l $'^\xEF\xBB\xBF' ./ \xef\xbb\xbf是UTF8 BOM的16进制表示 这个命令会把当前目录及所有子目录下的BOM头删除掉. 点击(此处)折叠或打开 find . -type f -exec sed -i 's/\xEF\xBB\xBF//' {} \; 另一种方法: 点击

linux下递归删除空目录的bash实例

# $1必须是绝对路径crurl=$1func_hdir(){echo $crurl  cd $crurl  for aitem in `ls -l | grep "^d" | awk '{print $9}'`; do        crurl=$crurl/$aitem        func_hdir $aitem  done dirc=`ls $crurl`  if [ "$dirc" = "" ]  then    echo $crur

【java】 linux下利用nohup后台运行jar文件包程序

Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar XXX.jar & &代表在后台运行. 特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行. 继续改进,如何让窗口关闭时,程序仍然运行? 方式三 nohup java -jar XXX.jar & nohup 意思是不挂断运行命令,当账户退出或终端关闭时,

自动修改Linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡文件的脚本

此脚本修改Linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡文件中的网卡一.网卡二的IP地址(IPADDR).子网掩码(NETMASK)信息 #!/bin/shPROC=/bin/sedFILE_PATH1=/etc/sysconfig/network-scripts/ifcfg-eth0FILE_PATH2=/etc/sysconfig/network-scripts/ifcfg-eth1IP_PRIMAL1=`grep -i ipaddr $F

linux下c通过虚拟地址映射读写文件的代码

在代码过程中中,把开发过程中比较好的一些代码片段记录起来,如下的代码内容是关于 linux下c通过虚拟地址映射读写文件的代码,应该对小伙伴有些好处.#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<fcntl.h>#include<sys/stat.h>#include<string.h>#include<sys/mman.h>struct stu{

Linux下通过find命令进行rm文件删除的小技巧

   我们常常会通过find命令进行批量操作.如:批量删除旧文件.批量改动.基于时间的文件统计.基于文件大小的文件统计等.在这些操作其中,因为rm删除操作会导致文件夹结构变化,假设要通过find结合rm的操作写成脚本.就会遇到一些麻烦,本文通过一个样例为大家进行介绍. 系统环境: SUSE Linux Enterprise Server 11 或 Red Hat Enterprise Linux 问题症状: 客户现场有一个自己主动化的脚本,有下面的find语句,每天执行以删除某个文件夹下7天曾经

Linux下定时删除指定目下n天前的文件

* 6 * * * find /root/home/zhang/* ctime 1 -exec rm -rf {} \; 表示每天早上六点删除/root/home/zhang目录下一天前创建的所有文件,不删除文件夹zhang,如果这个文件夹也要删除的话用 * 6 * * * find /root/home/zhang ctime 1 -exec rm -rf {} \; * 6 * * * 第一个*号表示时间中的 分钟 取值范围:0-59 第二个*号表示时间中的 小时 取值范围:0-23 第三个