V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
cevincheung
V2EX  ›  Linux

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

  •  
  •   cevincheung ·
    cevin · Oct 8, 2016 · 3536 views
    This topic created in 3489 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
        1
    sparkssssssss  
       Oct 8, 2016   ❤️ 1
    find ./ -name "*.php" |egrep "getHTTPPage"|xargs rm -rf
    cevincheung
        2
    cevincheung  
    OP
       Oct 8, 2016
    @coolloves 然而文件还是存在一堆。。。并没有删掉
    choury
        3
    choury  
       Oct 8, 2016
    find ./ -name "*.php" -delete
    ProjectAmber
        4
    ProjectAmber  
       Oct 8, 2016
    find ./ -name "*.php" | xargs egrep "getHTTPPage" -l | xargs rm
    choury
        5
    choury  
       Oct 8, 2016
    @cevincheung 我错了,希望你没有执行上条命令
    sualwu
        6
    sualwu  
       Oct 8, 2016
    for i in $(find ./ -name "*.php");do egrep "getHTTPPage" $i && rm -f $i;done
    EchoNode
        7
    EchoNode  
       Oct 8, 2016   ❤️ 1
    find ./ -name "*.php" -exec rm -rf {} \;
    EchoNode
        8
    EchoNode  
       Oct 8, 2016
    额,注意结尾的";
    cevincheung
        9
    cevincheung  
    OP
       Oct 8, 2016
    @x13945
    @choury

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

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


    不坑人

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

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

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

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