Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
cevincheung
V2EX  ›  Linux

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

  •  
  •   cevincheung ·
    cevin · Oct 8, 2016 · 3994 views
    This topic created in 3687 days ago, the information mentioned may be changed or developed.

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

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

    22 replies  •  2016-10-09 09:45:11 +08:00
    sparkssssssss
    sparkssssssss
    Oct 8, 2016❤️1
    1
    find ./ -name "*.php" |egrep "getHTTPPage"|xargs rm -rf
    cevincheung
    cevincheung
    OP
    Oct 8, 2016
    2
    @coolloves 然而文件还是存在一堆。。。并没有删掉
    choury
    choury
    Oct 8, 2016
    3
    find ./ -name "*.php" -delete
    ProjectAmber
    ProjectAmber
    Oct 8, 2016
    4
    find ./ -name "*.php" | xargs egrep "getHTTPPage" -l | xargs rm
    choury
    choury
    Oct 8, 2016
    5
    @cevincheung 我错了,希望你没有执行上条命令
    sualwu
    sualwu
    Oct 8, 2016
    6
    for i in $(find ./ -name "*.php");do egrep "getHTTPPage" $i && rm -f $i;done
    EchoNode
    EchoNode
    Oct 8, 2016❤️1
    7
    find ./ -name "*.php" -exec rm -rf {} \;
    EchoNode
    EchoNode
    Oct 8, 2016
    8
    额,注意结尾的";
    cevincheung
    cevincheung
    OP
    Oct 8, 2016
    9
    @x13945
    @choury

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

    注意 grep 的时候加 -l 只打印文件名
    inmyfree
    inmyfree
    Oct 8, 2016
    15


    不坑人

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

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

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

    find ./ -name "*.php" | xargs grep 'getHTTPPage' | awk -F':' '{print $1}'|xargs
    RealLiuSha
    RealLiuSha
    Oct 8, 2016
    21
    文件名有空格可以试试:
    find ./ -name "*.php" | xargs -I{} grep -l 'getHTTPPage' {} | xargs -I{} rm -rf {}
    oska874
    oska874
    Oct 9, 2016 via Android
    22
    grep -r + awk 就行了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4738 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 06:11 · PVG 14:11 · LAX 22:11 · JFK 01:11
    ♥ Do have faith in what you're doing.