V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
diveIntoWork
V2EX  ›  程序员

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

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

    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  
       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   ·   实用小工具   ·   2941 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 13:37 · PVG 21:37 · LAX 05:37 · JFK 08:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.