粗事了, 这样 rm -f 也中枪 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
diveIntoWork
V2EX    程序员

粗事了, 这样 rm -f 也中枪

  •  
  •   diveIntoWork 2018-03-24 16:41:32 +08:00 7543 次点击
    这是一个创建于 2765 天前的主题,其中的信息可能已经有所发展或是发生改变。

    find /var/www/html/sorry/cache/ -cmin +1 -exec rm -f '{}' ;

    写了一个删除缓存的命令,没有用通配符去匹配具体的某一类文件,结果没想到.和..两个隐藏文件夹,递归的把文件都删除了。。

    现在看了一下,/root/ 下的所有文件都没了,/ 根目录下的好像幸免于难。。目前可以正常使用,但是我不敢重启了。。

    也有可能只删除了 /root/目录下的文件?

    常在河边走,终于湿鞋了

    31 条回复    2018-03-25 17:12:00 +08:00
    diveIntoWork
        1
    diveIntoWork  
    OP
       2018-03-24 16:42:28 +08:00
    我好蠢,直接用 ls 就好了。
    nosay
        2
    nosay  
       2018-03-24 17:07:27 +08:00 via iPhone
    /root 下本来就没有什么东西吧…
    FindBoyFriend
        3
    FindBoyFriend  
       2018-03-24 17:11:13 +08:00
    /root 系统好像没放文件在里面吧?
    wangbenjun5
        4
    wangbenjun5  
       2018-03-24 17:14:03 +08:00
    这种删除命令还是少用为好,用之前请反复确认
    privil
        5
    privil  
       2018-03-24 17:16:43 +08:00 via iPhone
    type f
    WordTian
        6
    WordTian  
       2018-03-24 17:16:45 +08:00 via Android
    有一些,比如.bashrc 等,但是这种文件不一定就被删了,就算删了,影响也不大
    diveIntoWork
        7
    diveIntoWork  
    OP
       2018-03-24 17:17:45 +08:00
    @nosay @FindBoyFriend 嗯,后来确认了一下,由于及时 ctrl -c 没删掉多少文件,root 下的文件拷贝其他服务器上的已经恢复了。

    只是没想到掉这坑里了
    songz
        8
    songz  
       2018-03-24 17:38:26 +08:00
    那正确的命令应该怎么写啊?
    ferock
        9
    ferock  
    PRO
       2018-03-24 17:53:46 +08:00
    为什么要用递归。。。就像一楼自己说的,ls 不就行了吗?
    diveIntoWork
        10
    diveIntoWork  
    OP
       2018-03-24 17:58:31 +08:00
    @ferock 大概是短路了
    likuku
        11
    likuku  
       2018-03-24 18:05:17 +08:00   1
    论不要使用 root 账号作事情 /创建文件 的重要性...
    xpresslink
        12
    xpresslink  
       2018-03-24 18:05:39 +08:00
    正确的写法应当是 rm -Rf / 么?
    likuku
        13
    likuku  
       2018-03-24 18:06:14 +08:00
    如此这般,/root 下就没啥重要的文件了
    Qoxan
        14
    Qoxan  
       2018-03-24 18:07:42 +08:00 via iPhone   1
    find (dir) -mindepth 1 -maxdepth 1 ……
    再加其它参数,就不会误删其他目录的东西了
    chinvo
        15
    chinvo  
       2018-03-24 18:08:24 +08:00
    看不明白为啥用 find

    ls 不好么
    akira
        16
    akira  
       2018-03-24 18:31:52 +08:00
    删除的动作 再怎么小心也不为过。 除了文件 还是数据库的删除指令也是
    geelaw
        17
    geelaw  
       2018-03-24 18:36:23 +08:00 via iPhone   2
    请自觉学习 -WhatIf
    laoyur
        18
    laoyur  
       2018-03-24 20:09:42 +08:00
    所以,不会用 find 命令的表示很欣慰
    diveIntoWork
        19
    diveIntoWork  
    OP
       2018-03-24 21:26:28 +08:00
    @Qoxan 正解 @songz
    angelface
        20
    angelface  
       2018-03-24 21:28:22 +08:00   2
    建议你把 rm 用 mv 替换,然后定期清理,
    liangzi
        21
    liangzi  
       2018-03-24 22:32:41 +08:00 via Android
    我曾经也是用 find exec 差点误删除了 幸亏有权限限制 要不然惨大了 (捂脸)逃。。。。
    lucasmi2002
        22
    lucasmi2002  
       2018-03-24 22:38:58 +08:00 via Android
    加上文件名通配,先 ls,确认了再 rm
    l1093178
        23
    l1093178  
       2018-03-24 22:49:29 +08:00
    0.跑 find 之前应该用 -print 看看匹配到的文件
    1. find 可以直接 delete (-delete 参数),这是最安全的方式,不会因为文件名中间的空格误删其他文件
    ryd994
        24
    ryd994  
       2018-03-24 23:14:35 +08:00
    你的意思是说,你 /var/www/html/sorry/cache/ 里有. 和 ..两个文件?你该庆幸那里没有~
    楼上说的对,问题在于你没用-delete
    lan894734188
        25
    lan894734188  
       2018-03-25 04:03:48 +08:00 via Android
    脚本从来不敢用删除
    slack
        26
    slack  
       2018-03-25 07:29:16 +08:00 via Android
    手残党们了解一下 https://linux.cn/article-9425-1.html
    goreliu
        27
    goreliu  
       2018-03-25 08:24:48 +08:00
    find 怎么会通过 .. 目录访问到上一层?那不是 find 什么目录都相当于全盘遍历了。是不是命令记错了。
    dongxf
        28
    dongxf  
       2018-03-25 10:38:03 +08:00
    楼上说的对,find 找不出‘.’ 和 ‘..’
    楼主的锅,find 不背
    sutra
        29
    sutra  
       2018-03-25 13:35:06 +08:00
    man rescue 了解一下?
    fhefh
        30
    fhefh  
       2018-03-25 13:45:25 +08:00
    生产环境的机器 我一般重命名 宁愿占位置 也不删除~~
    shihira
        31
    shihira  
       2018-03-25 17:12:00 +08:00
    以后 rm 都要 dry run 一遍才敢运行了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1159 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 17:54 PVG 01:54 LAX 10:54 JFK 13:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86