一般情况下,我们删除文件使用 rm -f,删除目录时使用rm -rf,但是rm -rf是有缺陷的,当目录上的文件太多时,会删不动目录。
这时候,我们可以使用rsync,通过一种巧妙的替换方式来实现目录下大量文件的删除。具体使用方法可以使用man查看。
使用步骤:
1.先安装rsync.,
我安装的是rsync-3.0.6-9.el6.x86_64
2.在任意位置上创建个空目录。
我是在/root目录下新建了个test目录。即空目录是/root/test
3.使用rsync命令。
这也是我被网上的一些资料坑的地方。
坑的过程如下:
第一次使用的命令
rsync --delete-before -a -H -v /root/test ./bak
其中,bak为要删除的目录,结果执行后,发现./bak目录下的文件没有删除,反而还将/root/test的空目录复制了过来。
后来,多次验证下,才发现应该这么写:
rsync --delete-before -a -H -v /root/test/ ./bak
这样才能实现删除bak目录下的文件的目的。原因是源目录必须是要目录,那么就要求以/结尾。
因为网上没有提示新手们说使用rsync时空目录的路径后要带上/,所以我在这里记录下,防止自己忘记了,也为了和我一样初次使用的新手们免犯低级错误。