首页 > Linux > Linux下使用rsync删除海量文件

Linux下使用rsync删除海量文件

Linux使用rm  -rf *删除大量文件的时候会遇到-bash: /bin/rm: Argument list too long的错误,说明文件列表太大无法删除,可以尝试下面的命令删除大量文件:

/usr/bin/find /foo -name bar.* -exec rm {} \

但是,遇到百万级或千万级的文件列表时非常耗时,可以尝试使用rsync命令进行删除。rsync删除脚本如下:

rsync_del.sh

#!/bin/bash
mypath="/tmp/delete/"
if [ ! -d "$mypath" ];then
 mkdir "$mypath"
fi
rsync -avH --delete-before --progress --stats $mypath $1

使用方式:

chmod +x rsync_del.sh
rsync_del foo

该命令只会清空foo下所有的文件,并不会删除foo目录本身,可以在清空完成后通过rmdir foo删除foo目录。


rsync命令选项说明:

-delete-before 接收者在传输之前进行删除操作
–progress 在传输时显示传输过程
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性
-H 保持硬连接的文件
-v 详细输出模式
–stats 给出某些文件的传输状态


文章网址:http://blog.zhengshuiguang.com/linux/linux-rsync.html

随意转载^^但请附上教程地址。

标签:rsync 海量

仅有一条评论

  1. 没有名字 没有名字

    很方便,~\(≧▽≦)/~

评论已关闭