假设我们在目录 /tmp/to_delete 下有很多小文件
a1 a2 a3 f1 f2 f3
现在我们想快速的删除f 开头的文件。 如果文件量大,用rm 可能会失败,而且会很慢, 所以用rsync。 步骤如下:
创建一个空目录
mkdir /tmp/some
输入命令
rsync --delete-before -d --include="f*" --exclude="*" /tmp/some/ /tmp/to_delete/
通过以上步骤,可以快速的删除/tmp/to_delete下f开头的文件。 rsync 本身是同步不同目录的软件。
--include 和 --exclude 是用通配符来过滤需要操作的文件,顺序必须如上
如果你要过滤的文件名称太复杂,没办法用通配符表示,可以把要删除的文件名列出来,放入一个文件。 如下:
把要删除的文件名,存入文件 i.txt
[root@ES01 to_delete]# cat i.txt
f1
f2
f3
把要排除的文件名,存入文件e.txt
[root@ES01 to_delete]# cat e.txt
*
然后用命令
rsync --delete-before -d --include-from=./i.txt --exclude-from=./e.txt /tmp/some/ /tmp/to_delete/