Linux find 怎么删除文件。命令格式貌似不对?

2016 年 10 月 8 日
 cevincheung

使用命令find ./ -name "*.php" |xargs egrep "getHTTPPage"|xargs "rm" 出现酱紫

图片非https资源https访问请自觉新窗口打开。

3458 次点击
所在节点    Linux
22 条回复
sparkssssssss
2016 年 10 月 8 日
find ./ -name "*.php" |egrep "getHTTPPage"|xargs rm -rf
cevincheung
2016 年 10 月 8 日
@coolloves 然而文件还是存在一堆。。。并没有删掉
choury
2016 年 10 月 8 日
find ./ -name "*.php" -delete
ProjectAmber
2016 年 10 月 8 日
find ./ -name "*.php" | xargs egrep "getHTTPPage" -l | xargs rm
choury
2016 年 10 月 8 日
@cevincheung 我错了,希望你没有执行上条命令
sualwu
2016 年 10 月 8 日
for i in $(find ./ -name "*.php");do egrep "getHTTPPage" $i && rm -f $i;done
x13945
2016 年 10 月 8 日
find ./ -name "*.php" -exec rm -rf {} \;
x13945
2016 年 10 月 8 日
额,注意结尾的";
cevincheung
2016 年 10 月 8 日
@x13945
@choury

- - 不带坑人的
choury
2016 年 10 月 8 日
@x13945 你这个和我给的是一样的效果,把人家的*.php 全给删了……
metowolf
2016 年 10 月 8 日
反正我是不敢随意复制网上的 rm
hzwjz
2016 年 10 月 8 日
xargs 后面 rm 没双引号的呢
LGA1150
2016 年 10 月 8 日
ppwangs
2016 年 10 月 8 日
find -name "*.php" -exec grep -l "getHTTPPage" {} \; | xargs rm -rf

注意 grep 的时候加 -l 只打印文件名
inmyfree
2016 年 10 月 8 日


不坑人

find /mnt/media_a/ -name *.lnk -type f -print -exec rm -rf {} ;
Trim21
2016 年 10 月 8 日
直接搜“*getHTTPPage*.php “不行吗
netwboy
2016 年 10 月 8 日
find . -name '*.php' -type f -print -exec rm -rf {} \;
skydiver
2016 年 10 月 8 日
@sualwu 你这个文件名有空格就不行
RealLiuSha
2016 年 10 月 8 日
我建议你这么做:

1: 查看一下待删除的文件列表
grep 'getHTTPPage' *.php|awk -F':' '{print $1}'|xargs

2: 确认文件没啥问题? 好了 可以删除掉了
rm -rf `grep 'getHTTPPage' *.php|awk -F':' '{print $1}'|xargs`
RealLiuSha
2016 年 10 月 8 日
@lgpqdwjh 值得一提的是,如果你期望的是递归的寻找文件, 我提供的方法则只能在当前目录工作, 你似乎需要这样子?

find ./ -name "*.php" | xargs grep 'getHTTPPage' | awk -F':' '{print $1}'|xargs

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/311092

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX