linux 查找包含关键字的所有文件并删除该文件。

比如,查找/var/www/html/tom下面的所有包含关键字”abc"的文件,并删除这些文件,批量删除
对不起,可能是我说的不清楚,是文件内容包含abc,不是文件名。

1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。

2、在linux命令行下输入shell指令:find . -name "abc*"|xargs rm -rfv。

3、键盘按“回车键”运行shell指令,此时会看到abc开头的abc123.txt和abc6swef.txt都被删除了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-07
find  /var/www/html/tom -type f  | xargs -n1 -I "ZZZZZ" grep -l "abc" "ZZZZZ" | xargs -n1 -I "XXXXX" rm -f "XXXXX"


其中, ZZZZZ 和 XXXXX 都是临时命名变量,你使用的时候直接这样用就可以。不需要替换成别的字符。


前面2个回答,都是文件名中包含 abc ,而不是文件内容包含abc。所以,我的是正确的。

本回答被提问者采纳
第2个回答  2015-11-17
我这个方法感觉有点繁琐:

# find . -name \* -type f -print | xargs grep "hostname" | awk -F: '{print $1}' | xargs rm -rf

说明:查找当前目录下包含hostname的文件,并删除!
应该还有更简便的方法!
第3个回答  2013-08-16
find /var/www/html/tom/* -name "*abc*" -exec rm -rf {} \;