`
cfyme
  • 浏览: 264561 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

linux快速删除大量小文件方法

 
阅读更多

转载地址:http://blog.csdn.net/cywosp/article/details/8285842

 

当我们在linux系统中要删除数万或者数十万甚至数百万的文件时使用rm -rf *就不太好用,因为要等待很长一段时间。在这种情况之下我们可以使用linux系统命令rsync来巧妙的处理。rsync实际上用的是替换原理,处理数十万个文件也是秒删。

    1. rsync安装,有些系统默认安装有该命令

ubuntu系统:sudo apt-get install rsync

fedora 系统:sudo yum install rsync

其他的可以源码安装,到下面的网站下载

http://rsync.samba.org

 

    2. rsync提供了一些跟删除有关的参数

rsync --help | grep delete

     --del                                an alias for --delete-during

     --delete                          delete extraneous files from destination dirs

     --delete-before             receiver deletes before transfer, not during

     --delete-during             receiver deletes during transfer (default)

     --delete-delay               find deletions during, delete after

     --delete-after                receiver deletes after transfer, not during

     --delete-excluded        also delete excluded files from destination dirs

     --ignore-errors             delete even if there are I/O errors

     --max-delete=NUM    don't delete more than NUM files

其中--delete-before接收者在传输之前进行删除操作

 

    3. 示例

清空目录或文件,如下: 

1、先建立一个空目录 

mkdir /data/blank 

2、用rsync删除目标目录 

rsync --delete-before -d -a -H -v --progress --stats /data/blank/ /var/edatacache/

或者

rsync --delete-before -d /data/blank/ /var/edatacache/

 

这样/var/edatacache目录就被快速的清空了。

 

选项说明:

–delete-before 接收者在传输之前进行删除操作

–progress          在传输时显示传输过程

-a                       归档模式,表示以递归方式传输文件,并保持所有文件属性

-H                      保持硬连接的文件

-v                       详细输出模式

–stats                给出某些文件的传输状态

-d                      transfer directories without recursing

 

3、也可以用来删除大文件

假如我们在/root/下有一个几十G甚至上百G的文件data,现在我们要删除它

一、创建一个空文件

    touch /root/empty

二、用rsync清空/root/data文件

    rsync --delete-before -d --progess --stats /root/empty /root/data

 

 

注意:

当SRC和DEST文件性质不一致时将会报错 

当SRC和DEST性质都为文件【f】时,意思是清空文件内容而不是删除文件 

当SRC和DEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录 

 

分享到:
评论

相关推荐

    linux 快速删除包含大量文件的文件夹脚本

    基于linux 的 快速删除包含大量文件的文件夹shell脚本,可以在任意linux环境下,授予可执行权限后就可用,实测比rm 快很多,有问题可留言

    Linux下删除大量文件

    描述Linux下使用rsync删除大量文件的技术文档

    linux删除大量文件的6种方法

    主要介绍了linux删除大量文件的6种方法,需要的朋友可以参考下

    rsync备份海量文件时占用大量内存的解决方法

    在2.X的版本中,rsync备份时都是先列表再备份(添加或者删除),在处理大量文件时,会耗费比较多的内存。 备份的时候,rsync扫描到的每个文件(目录也一样),在它的列表中约占100字节的内存,如果加了–delete参数的话...

    删除大量文件工具.rar

    基于java的多线程大量文件工具删除速度rmdir命令的10倍左右,GIS服务器误操作创建了上亿个文件夹,几千亿的地图切片,为删除这些切片编写了此工具,使用了一天的时间成功删除掉。服务器性能不怎么好所以只开了10个...

    Linux下正确快速删除海量文件的方法分享

    最近在优化服务器时发现postfix下的maildrop目录和clientmqueue目录下发现有大量的文件,进入这些目录里使用ls命令是愚蠢的做法,而直接执行rm * , 没有任何反应,文件数量也没有减少,也就是说,在海量文件目录里...

    ubuntu linux 下C语言实现FTP批量文件上传

    在ubuntu linux下实现的FTP文件上传,程序自动监听目录下是否有图片文件,有文件则自动通过FTP上传到服务器端,同时删除目录下的文件,实现了批量文件上传,自动重命名文件,程序经测试,运行稳定。

    Linux删除文件不同方法效率对比

    主要介绍了Linux删除文件不同方法效率对比,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    linux教程——很使用的那种

    由于linux中的别名机制,使用rm等价与使用rm -i,这样在删除文件或目录时会有提示,如果不想出现提示内容,需要加选项-f。写脚本的时候需要加上-f,因为批量删除文件或目录不需要每次都提示询问。 在unix中rm删除文件...

    inotify-tools-3.14.tar.gz+linux文件同步软件(含安装方法和同步脚本)

    Inotify是一种强大的、细粒度的、异步的文件系统事件监控机制, linux内核从 2.6.13起,加入了Inotify支持,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种事件,利用这个内核接口,第三方软件就可以...

    LINUX操作系统(电子教案,参考答案)

    本章主要介绍了Linux的文件结构、目录结构,同时还介绍了链接,并用大量的实例形象生动地说明了Linux下各种文件的操作。 第4章:文本编辑。本章主要介绍了Linux下的文本编辑器,这是使用Linux的一些基本技能。学好本...

    Linux恢复删除文件的lsof命令详解

    在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件...

    RED HAT LINUX 6大全

    本书内容翔实、涉及领域广泛,并且提供了详细的例子和大量的参考资料(包括书籍、电子文档和Internet站点),是一本学习、使用和管理Linux不可多得的好书。 目 录 译者序 前言 第一部分 Red Hat Linux的介绍与安装 ...

    linux常用命令大全.docx

    Linux系统中包含了大量的命令,用于管理文件、目录、进程、网络等各个方面。以下是Linux系统中常用的一些命令的简要介绍: 文件与目录管理: ls:列出目录内容。 cd:切换目录。 pwd:显示当前目录的绝对路径。...

    Linux下如何寻找相同文件的方法

    随着电脑的使用,系统里将产生很多垃圾,最典型的就是同一份文件被保存到了不同的位置,这样导致的结果就是磁盘空间被大量占用,系统运行越来越慢。 所以如果你的电脑空间告急的话,可以试着去删除这样的文件,释放...

    Java实现zp大文件解压、合并、复制、删除(30万文件大约2个小时)

    FILE_PATH下,并且删除PROVINCE_DIR跟UN_ZIP_PATH下文件,这样保证程序每次运行PROVINCE_DIR文件夹下的文件跟UN_ZIP_PATH下的文件都是最新未处理过的,避免了不断判断文件历史记录所带来的大量时间消耗。 所以为了...

    LINUX命令大全 资源提供了大量的命令行工具和选项,可以根据具体的需求来选择使用

    Linux是一种开源的操作系统,它提供了许多强大的命令行工具,可以用于管理文件、执行任务、配置系统等。下面是一些常用的Linux命令: ls: 列出当前目录下的文件和文件夹。 cd: 进入指定的目录。 pwd: 显示当前所在...

Global site tag (gtag.js) - Google Analytics