`
webcenterol
  • 浏览: 952584 次
文章分类
社区版块
存档分类
最新评论

linux无需rm就可快速删除大量文件--- rsync --delete-before -a -H -v --progress --stats

 
阅读更多
格式:
rsync --delete-before -a -H -v --progress --stats
选项:

--delete-before 接收者在传输之前进行删除操作
-progress 在传输时显示传输过程
-a 归档模式 表示以递归方式传输文件,并保持所有文件属性
-r 对子目录以递归方式处理
-H 保持硬连接的文件
-v 详细输出模式


举例说明:
/home/aniya/ 是一个空文件夹【无任何子目录以及文件】,/home/zhaoyj目录下有很多文件,现在要将这个目录下的N多个文件清空
[root@XKWB5705 home]# rsync --delete-before -a -H -v --progress --stats /home/aniya/ /home/zhaoyj
building file list ...
13 files to consider
./
.bash_history
2032 100% 0.00kB/s 0:00:00 (xfer#1, to-check=11/13)
.bash_logout
33 100% 8.06kB/s 0:00:00 (xfer#2, to-check=10/13)
.bash_profile
176 100% 21.48kB/s 0:00:00 (xfer#3, to-check=9/13)
.bashrc
124 100% 15.14kB/s 0:00:00 (xfer#4, to-check=8/13)
.viminfo
557 100% 45.33kB/s 0:00:00 (xfer#5, to-check=7/13)
.mozilla/
.mozilla/extensions/
.mozilla/plugins/
Maildir/
Maildir/cur/
Maildir/new/
Maildir/tmp/


Number of files: 13
Number of files transferred: 5
Total file size: 2922 bytes
Total transferred file size: 2922 bytes
Literal data: 2922 bytes
Matched data: 0 bytes
File list size: 297
File list generation time: 0.022 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 3513
Total bytes received: 178


sent 3513 bytes received 178 bytes 7382.00 bytes/sec
total size is 2922 speedup is 0.79
---------------------------------------------------------------------------------------------------------------------------------------------


当源和目的文件性质不一致的时候会报错的:
[root@XKWB5705 /]# rsync --delete-before -a -H -v --progress --stats /varOLD/ /aniya/usr.tar.gz
building file list ...
1 file to consider
ERROR: cannot overwrite non-directory with a directory
rsync error: errors selecting input/output files, dirs (code 3) at main.c(488) [receiver=2.6.8]
rsync: connection unexpectedly closed (8 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(463) [sender=2.6.8]
[root@XKWB5705 /]# ls -l aniya/
total 1049844
-rw-r--r-- 1 root root 1073982015 Sep 15 21:09 usr.tar.gz
---------------------------------------------------------------------------------------------------------------------------------------------
haha.txt 是空文件,usr.tar.gz是1.1G的压缩包,现在是把usr.tar.gz的大小由1.1G变成0【即清空文件包】


[root@XKWB5705 /]# touch /varOLD/haha.txt
[root@XKWB5705 /]# rsync --delete-before -a -H -v --progress --stats /varOLD/haha.txt /aniya/usr.tar.gz
building file list ...
1 file to consider
hahah
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: 32
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 90
Total bytes received: 42


sent 90 bytes received 42 bytes 88.00 bytes/sec
total size is 0 speedup is 0.00


查看一下usr.tar.gz是否还存在,查看结果是存在的,但是包的大小变为了0
[root@XKWB5705 /]# ls -l /aniya/
total 0
-rw-r--r-- 1 root root 0 Sep 15 21:22 usr.tar.gz


-----------------------------------------------------------------------------------------------------------------------------------------------
现在清空/varOLD下的文件,使其变为空目录:
[root@XKWB5705 /]# rm -rvf /varOLD/hahah
removed `/varOLD/hahah'
[root@XKWB5705 /]# ls /varOLD/


我现在要做的是将/aniya/目录下的所有文件清空【即删除usr.tar.gz文件包】:
[root@XKWB5705 /]# rsync --delete-before -a -H -v --progress --stats /varOLD/ /aniya/
building file list ...
1 file to consider
deleting usr.tar.gz
./


Number of files: 1
Number of files transferred: 0
Total file size: 0 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 28
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 50
Total bytes received: 26


sent 50 bytes received 26 bytes 152.00 bytes/sec
total size is 0 speedup is 0.00

/aniya/目录已经为空了
[root@XKWB5705 /]# ls /aniya/
[root@XKWB5705 /]# ls /aniya/

从以上结果可以得知:

当SRC和DEST文件性质不一致时将会报错
当SRC和DEST性质都为文件【f】时,意思是清空文件内容而不是删除文件
当SRC和DEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录

最重要的是,它的处理速度相当快,处理几个G的文件也就是秒级的事
最核心的内容是:rsync实际上用的就是替换原理


分享到:
评论

相关推荐

    Linux下删除大量文件

    ### Linux下删除大量文件的方法与比较 在Linux环境中,经常需要处理大量的文件操作,比如删除。本文将介绍几种常见的在Linux环境下批量删除文件的方法,并通过实际测试对比它们的效率。 #### 一、背景介绍 在...

    rsync命令教程 在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项。

    在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项。 一、rsync的六种工作模式: 1.1、拷贝本地...

    rsync命令排除文件和文件夹(exclude-from)

    `-l` 表示保留软链接),`--delete` 删除目标目录中源目录没有的文件,`--stats` 输出统计信息,`--progress` 显示同步进度。 ### 二、排除单个文件和文件夹 排除某个文件或文件夹,可以使用 `--exclude` 参数,...

    aix下rsync安装包

    常见的选项有`-r`(递归处理目录)、`-a`(归档模式,保留所有文件属性)、`-v`(详细输出)和`--delete`(删除目标中源不存在的文件)。例如,将本地目录`/source`同步到远程服务器`remoteHost:/target`: ```bash...

    rsync_linux

    ### rsync 在 Linux 上的数据同步与备份 #### 知识点概述 对于选择Linux作为其应用平台的中小型企业或网站而言,在数据管理方面通常会遇到数据远程备份或网站镜像的需求。尽管市场上有许多商业化的产品可供选择,...

    linux 下rsync文件夹同步配置

    rsync是一种用于文件传输的开源软件,其核心功能是文件同步,能够快速、增量地同步文件或目录。它利用“差分压缩”算法,只传输两个文件差异部分,极大提高了数据传输效率。此外,rsync支持多种传输协议,如TCP/IP,...

    两台linux服务器目录实时同步(Rsync+Inotify)

    `Inotify`是Linux内核中的一个功能,用于监控文件系统的变更事件,如文件的创建、删除、修改等,并且可以及时地向应用程序报告这些变化。这对于实时监测文件变动并采取相应措施非常有用。 #### 四、实时同步方案...

    linux下Rsync+sersync实现文件数据实时同步

    `Rsync`是一个强大的、快速的文件同步和备份工具,它支持本地和远程文件同步。其核心特性包括增量传输、只同步变化的数据、可以选择的压缩选项以及广泛的过滤规则。 1. **增量传输**:Rsync通过比较源文件和目标...

    rsync-3.1.2-4.el7.x86_64.rpm

    rsync-3.1.2-4.el7.x86_64.rpm linux系统下rsync安装包

    Linux下rsync文件同步详解

    Linux 下 rsync 文件同步详解 rsync 简介 RSYNC 是一个快速、可靠、功能强大且免費的 Unix 和 Linux 文件同步工具。它能够快速地同步文件和目录,从而实现文件的备份、镜像和同步。rsync 的主要功能包括文件同步...

    inotify-tools+rsync同步使用方法介绍

    `rsync` 是一个功能丰富的数据同步工具,它支持快速增量传输,这意味着它可以在两个位置之间高效地同步文件,只传输实际发生改变的部分,大大减少了网络带宽的消耗。`rsync` 也支持多种同步模式,如本地文件同步、...

    ranger-2.1.0-usersync.tar.gz

    在“ranger-2.1.0-usersync.tar.gz”这个压缩包中,我们关注的是Ranger的用户同步工具(Ranger Usersync),这是一个关键组件,用于将组织的用户和组信息从身份提供者(如Active Directory或LDAP)同步到Hadoop集群...

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

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

    rsync-3.0.9.tar.gz linux上最新版文件同步工具

    rsync是Linux操作系统中的一款强大的文件和目录同步工具,它以其高效、灵活的特性在系统管理领域广泛应用。rsync-3.0.9是该工具的一个版本,代表着它在发布时具备了最新的功能和改进。这个版本可能包含了性能优化、...

    linux命令rsync.txt

    根据提供的文件信息,“linux命令rsync.txt”,我们可以深入探讨rsync命令的相关知识点,包括其基本用法、常用选项以及实际应用场景等。 ### rsync 命令简介 rsync(remote sync)是一款在Linux系统中非常强大的...

    大文件快速删除、大量小文件删除、删除N天前的文件以及删除特定类型的文件

    本文将详细介绍如何在Linux系统中快速有效地删除大文件、大量小文件、N天前的文件以及特定类型的文件,并提供实用的命令示例及注意事项。 #### 1. 大文件快速删除 对于大文件的删除,可以直接使用`rm`命令。例如,...

    rsync-2.6.9.tar

    《rsync-2.6.9:服务器间的数据同步与备份利器》 rsync是一款强大的、免费的开源软件,主要用于在不同的计算机之间进行文件和目录的同步与备份。标题中的"rsync-2.6.9.tar"表示的是rsync的特定版本2.6.9的源代码...

    bat脚本 rsync免密码 传输windows文件到Linux系统

    利用cwrsync将 bat脚本,一键传输windows文件到linux,当然反过来也是可以的。 将压缩包解压到windows C盘根目录下即可。 请优先阅读“请阅读我.txt” 1、首先使用Pageant加载“putty key”文件夹中的1.ppk,这个是...

    Rsync for windows配置

    - **--max-delete**:限制最大可删除文件数量。 - **--partial**:保留部分传输的数据,在中断后可以继续传输。 - **--force**:强制删除目录。 - **--numeric-ids**:以数字形式保存用户和组 ID。 - **--timeout**...

Global site tag (gtag.js) - Google Analytics