`

linux下快速删除大量文件

阅读更多
linux下快速删除大量文件

假如你要在linux下删除大量文件,比如100万、1000万,像/var/spool/clientmqueue/的mail邮件,

像/usr/local/nginx/proxy_temp的nginx缓存等,那么rm -rf *可能就不好使了。
rsync提供了一些跟删除相关的参数
rsync --help | grep delete
     --del                   an alias for --delete-during
     --delete                delete files that don't exist on the sending side
     --delete-before         receiver deletes before transfer (default)
     --delete-during         receiver deletes during transfer, not before
     --delete-after          receiver deletes after transfer, not before
     --delete-excluded       also delete excluded files on the receiving side
     --ignore-errors         delete even if there are I/O errors
     --max-delete=NUM        don't delete more than NUM files

其中--delete-before    接收者在传输之前进行删除操作
可以用来清空目录或文件,如下:
1、先建立一个空目录
mkdir /data/blank
2、用rsync删除目标目录
rsync --delete-before -d /data/blank/ /var/spool/clientmqueue/
这样目标目录很快就被清空了

又假如你有一些特别大的文件要删除,比如nohup.out这样的实时更新的文件,动辄都是几十个G上百G的,也可

以用rsync来清空大文件,而且效率比较高
1、创建空文件
touch /data/blank.txt
2、用rsync清空文件
rsync -a --delete-before --progress --stats /root/blank.txt /root/nohup.out
building file list ...
1 file to consider
blank.txt
           0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)

Number of files: 1
Number of files transferred: 1
Total file size: 0 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 27
File list generation time: 0.006 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 73
Total bytes received: 31

sent 73 bytes  received 31 bytes  208.00 bytes/sec
total size is 0  speedup is 0.00


tips:
当SRC和DEST文件性质不一致时将会报错
当SRC和DEST性质都为文件【f】时,意思是清空文件内容而不是删除文件
当SRC和DEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录
最重要的是,它的处理速度相当快,处理几个G的文件也就是秒级的事
最核心的内容是:rsync实际上用的就是替换原理
分享到:
评论

相关推荐

    Linux下删除大量文件

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

    Linux下清空与删除指定大小的大文件命令.docx

    Linux下清空与删除指定大小的大文件命令.docx

    删除大量文件工具.rar

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

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

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

    linux 删除当前目录下大小为0的文件

    shell 删除 大小为0文件 ,不需要参数,直接在需要清除文件的目录下执行即可

    linux下文件管理系统的研究与实现

    Linux操作系统是现在流行的一种免费的...在研究了Linux文件系统及网络传输的原理基础上系统主要实现了对文件的管理,包括创建、删除、重命名、复制、移动和文件权限的修改的功能,以及对字符的搜索和对文件的网络传输。

    模拟Linux文件系统

    在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的模拟Linux文件系统。 1. 在现有机器硬盘上开辟100M的硬盘空间,作为设定的硬盘空间。 2. 编写一管理程序simdisk对此空间进行管理,以模拟Linux...

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

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

    Linux 删除文件夹和文件的命令

    Linux 删除文件夹和文件的命令,根据文件夹的大小来判断是否删除该文件,你也可以根据文件名来删除

    本科毕业论文 Linux下文件管理与文件传送的研究与实现

    本科毕业论文 Linux下文件管理与文件传送的研究与实现 目 录 摘 要 III 关键词 III Abstract III Key words III 前言 1 1 Linux操作系统 1 1.1 Linux操作系统的产生及发展 1 1.2 Linux操作系统的特点 3 1.2.1自由...

    Linux系统环境Ext3文件系统的使用介绍

    本文向各位介绍Linux下使用ext3日志文件系统应用。Ext3文件系统是直接从Ext2文件系统发展而来,目前ext3文件系统已经非常稳定可靠。它完全兼容ext2文件系统。用户可以平滑地过渡到一个日志功能健全的文件系统中来。...

    Linux 中清空或删除大文件内容的五种方法

    在 Linux 终端下处理文件时,有时我们想直接清空文件的内容但又不必使用任何Linux命令行编辑器 去打开这些文件。那怎样才能达到这个目的呢?在这篇文章中,我们将介绍几种借助一些实用的命令来清空文件内容的方法。 ...

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

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

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

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

    在Linux系统下编写C语言程序完成删除非空目录操作

    在Linux系统下编写C语言程序完成删除非空目录操作主要还是模拟系统指令rmkdir,要想删除目录文件首先得先删除目录文件里面的文件,使文件清空才能删除目录。本程序才用递归来不断打开目录文件清空目录下的文件并返回...

    Linux操作系统:文件的创建、查找及删除ppt.pptx

    文件的创建、查找及删除 文件类型 文件创建命令—touch 格式:touch [选项] 文件名; 在当前目录创建文件 file.txt; touch命令的用法 案例1 touch命令的用法 在当前目录创建file1.mp3—file7.mp3,共7个文件; 案例...

    Xftp Linux远程控制文件上传下载工具

    Xftp Linux远程控制文件上传下载工具 Xftp是一个功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS Windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。Xftp 能同时适应初级用户和高级用户的...

    模拟linux文件系统

    在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的 模拟Linux文件系统 在现有机器硬盘上开辟20M的硬盘空间,作为设定的硬盘空间。 2. 编写一管理程序对此空间进行管理,以模拟Linux文件系统,...

    windows、linux下sqlite远程管理工具及服务器

    而且可以远程运行SQL语句,直接通过点击数据表格对数据库记录进行更新包括增加新记录、删除、修改,可以上传下载二进制文件到数据库,可批量导入TXT文件到数据库,可以查看索引,支持多数据库同时操作。 功能还在...

Global site tag (gtag.js) - Google Analytics