linux中rsync快速删除小文件方法

rsync是一款同步工具我之前只把它用来做数据同步操作没想过用来做文件删除操作,不过今天看到一篇文章可以实现文件删除操作,下面我们就一起来看看吧。

使用rsync同步一个空目录即可。对于万级文件的目录基本是秒删,回车就OK。

步骤如下:

1、建立一个空目录

mkdir -p /tmp/rsync_blank

2、确立需要清空的目标目录

/data/ooxx

3、使用rsync同步删除(注意目录后面的“/”),整体效率会快一个数量级的样子。

rsync –delete-before -a -H -v –progress –stats /tmp/rsync_blank/ /data/ooxx/

选项说明:

–delete-before 接收者在传输之前进行删除操作
–progress 在传输时显示传输过程
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性
-H 保持硬连接的文件
-v 详细输出模式
-stats 给出某些文件的传输状态
一般我们不需要显示进度,使用以下命令即可

rsync –delete-before -a -H /tmp/rsync_blank/ /data/ooxx/

这样我们要删除的 cache目录就会被清空了。

tips:

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

时间: 2024-09-20 16:51:34

linux中rsync快速删除小文件方法的相关文章

Linux中RM快速删除大量文件/文件夹方法

昨天遇到一个问题,在Linux中有一个文件夹里面含有大量的Cache文件(夹),数量级可能在百万级别,使用rm -rf ./* 删除时间慢到不可接受.Google了一下,查到了一种方法,试用了下确实比单纯使用rm快了一个数量级. 方法见下: 1)首先建立一个空白文件夹. mkdir /tmp/www.111cn.net 2)之后使用以下语句即可快速的删除文件. rsync --delete-before -d /tmp/www.111cn.net/ /the/folder/you/want/de

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

在 Linux 终端下处理文件时,有时我们想直接清空文件的内容但又不必使用任何Linux命令行编辑器 去打开这些文件.那怎样才能达到这个目的呢?在这篇文章中,我们将介绍几种借助一些实用的命令来清空文件内容的方法. 注意: 由于再Linux中一切皆文件,你需要时刻注意,确保你将要清空的文件不是重要的用户文件或者系统文件.清空重要的系统文件或者配置文件可能会引发严重的应用失败或者系统错误. 提示:在下面的示例中,我们将使用名为 access.log 的文件来作为示例样本. 1. 通过重定向到 Nul

fdupes:Linux 中查找并删除重复文件的命令行工具

对于大多数计算机用户而言,查找并替换重复的文件是一个常见的需求.查找并移除重复文件真是一项令人不胜其烦的工作,它耗时又耗力.但如果你的机器上跑着GNU/Linux,那么查找重复文件会变得十分简单,这多亏了fdupes工具. fdupes--在Linux中查找并删除重复文件 fdupes是啥东东? fdupes是Linux下的一个工具,它由Adrian Lopez用C编程语言编写并基于MIT许可证发行,该应用程序可以在指定的目录及子目录中查找重复的文件.fdupes通过对比文件的MD5签名,以及逐

linux中rsync异步服务器实现文件同步与备份

  Rsync 非常适合在两台机器之间快速同步大型.复杂的目录,例如论坛的附件目录.再配合 ssh ,则安全性也有保证,且可以利用 ssh public key 和 cron 来进行自动定时同步. 说明:两台机器分别为 localhost 和 remotehost ;用户分别为 localuser 和 remoteuser. 环境:FreeBSD 4.9 和 FreeBSD 6.1  代码如下   设置 ssh public key 认证 $ssh-keygen -t dsa -b 2048 生

如何在 Linux 中安全擦除删除的文件内容

  下面的教程将教给所有的 Linux 用户关于如何安全的擦除可用的硬盘驱动器(HDD).固态硬盘驱动器(SSD)以及 USB 闪存驱动器空间,以使任何人都不能恢复被删除的文件. 是否有注意到,当你从系统中删除了一个文件,或从回收站中彻底删除后,它就会在文件系统中消失,但是,该文件实际上并未消失,它驻留在你的磁盘驱动器的可用空间中,仍然可以用数据恢复应用程序恢复回来. 这篇教程会提供两种方法.第一种是使用一款名叫 Wipe Free Space 的应用程序,它是由波兰开发者 Bogdan Dro

linux中shell脚本删除.svn文件夹

 当在linux服务器上进行了svn代码下载后,要同步到web目录里去的话,就要把.svn这个文件夹给清理干净,给安全性增加一点保障. 脚本内容: del_svn.sh  代码如下 复制代码 #!/bin/bash cd /home/trunk/ find ./ -name ".svn" |xargs -n1 echo > /dev/null 2>&1 find ./ -name ".svn" -print0 | xargs -0 rm -fr

linux中tar解压gz文件方法详解

.tar 解包:tar xvf FileName.tar 打包: tar cvf FileName.tar DirName .gz 解压 gunzip FileName.gz      gzip -d FileName.gz 压缩 gzip FileName .tar.gz  .tgz 解压: tar zxvf FileName.tar.gz 压缩: tar zcvf FileName.tar.gz

linux系统维护 脚本-redhat中如何快速删除大量小文件

问题描述 redhat中如何快速删除大量小文件 业务系统每天会在一个目录下产生大约300万个临时文件,每个文件大约100K左右,自己写了一个脚本文件,每天定时删除,最近由于业务量的增长,这个脚本已经不能胜任这个工作了,请问有没有更好的办法来删除这些文件? 附上脚本文件代码 #!/bin/bash time=date -d "3 day ago" "+%Y%m%d" date > /root/date_start_t.txt ls /backup/fr >

文件读取-C# 快速删除一个文件中相同行

问题描述 C# 快速删除一个文件中相同行 我要从一个较大(上G)的文件中读取数据,要保证不能重复,也就是删除相同的行,读取一行再和前面的一行行对比效率太低了,有没有更好的方法?求大牛 解决方案 把每行添加到map中,因为map不允许key重复,每行内容作为key,最后把map中的内容写回去