技术解析

Linux find 怎么删除文件。命令格式貌似不对?
0
2021-07-02 20:18:38
idczone

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

http://ww2.sinaimg.cn/large/9093b87dgw1f8knnpv58cj213106fjxm.jpg 图片非https资源https访问请自觉新窗口打开。


find ./ -name "*.php" |egrep "getHTTPPage"|xargs rm -rf

然而文件还是存在一堆。。。并没有删掉

find ./ -name "*.php" -delete

find ./ -name "*.php" | xargs egrep "getHTTPPage" -l | xargs rm

我错了,希望你没有执行上条命令

for i in $(find ./ -name "*.php");do egrep "getHTTPPage" $i && rm -f $i;done

find ./ -name "*.php" -exec rm -rf {} \;

额,注意结尾的";



- - 不带坑人的

你这个和我给的是一样的效果,把人家的*.php 全给删了……

反正我是不敢随意复制网上的 rm

xargs 后面 rm 没双引号的呢



find -name "*.php" -exec grep -l "getHTTPPage" {} \; | xargs rm -rf
注意 grep 的时候加 -l 只打印文件名


不坑人
find /mnt/media_a/ -name *.lnk -type f -print -exec rm -rf {} ;

直接搜“*getHTTPPage*.php “不行吗

find . -name '*.php' -type f -print -exec rm -rf {} \;

你这个文件名有空格就不行

我建议你这么做:
1: 查看一下待删除的文件列表
grep 'getHTTPPage' *.php|awk -F':' '{print $1}'|xargs
2: 确认文件没啥问题? 好了 可以删除掉了
rm -rf `grep 'getHTTPPage' *.php|awk -F':' '{print $1}'|xargs`

值得一提的是,如果你期望的是递归的寻找文件, 我提供的方法则只能在当前目录工作, 你似乎需要这样子?
find ./ -name "*.php" | xargs grep 'getHTTPPage' | awk -F':' '{print $1}'|xargs

文件名有空格可以试试:
find ./ -name "*.php" | xargs -I{} grep -l 'getHTTPPage' {} | xargs -I{} rm -rf {}

grep -r + awk 就行了

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服