说明:
通过rm来删除大文件或很多小文件里,需要时间些比较多。rsync来删除大文件,处理速度那是相当的快,处理几个G的文件也就是秒级的事、比rm要快很多倍。就是对磁盘io的占用较高、要尽量避免在业务高峰操作
说法:
rsync --delete-before -avH --progress --stats SRC DEST --delete-before 接收者在传输之前进行删除操作 -progress 在传输时显示传输过程 -a 归档模式 表示以递归方式传输文件,并保持所有文件属性 -r 对子目录以递归方式处理 -H 保持硬连接的文件 -v 详细输出模式 --stats 显示文件传输的过程 SRC 这边是指新建的空文件或目录 DEST 这边是指需要清除的文件或目录
解释:
通过delete-before参数,把SRC(为新建的空文件或空目录)里的内容rsync到DEST去:
当SRC和DEST性质都为文件【f】时,意思是清空文件内容而不是删除文件
当SRC和DEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录
测试:
1. 查看当前目录及要删除的文件
# pwd /tmp/test/log # ls -h -rw-r--r--. 1 nobody nobody 4.4G Jan 16 02:45 rhel-server-5.8-i386-dvd.iso 也可以通过dd bs=1M count=1000 if=/dev/zero of=lala生成个1G的lala文件用作测试
2. 新建空目录、通过rsync秒删大文件
# mkdir empty # rsync --delete-before -avH --progress --stats /root/empty/ /tmp/test/log/ building file list ... 1 file to consider deleting rhel-server-5.8-i386-dvd.iso ./ 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: 19 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 29 Total bytes received: 15 sent 29 bytes received 15 bytes 6.77 bytes/sec total size is 0 speedup is 0.00
可以看到,处理个几G的文件简直就是秒删!!
DEST SRC的顺序反了
您这样理解也是对的哈,我改过来了