V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cstj0505
V2EX  ›  程序员

rm -rf 总有眼花的一天

  •  
  •   cstj0505 · 2019-04-03 13:56:10 +08:00 · 8659 次点击
    这是一个创建于 665 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 home 目录下敲了个 rm -rf * logs/ 刚午睡醒,脑子还不是很清醒,然后世界就清净了。

    不过由于有惨痛教训, 大部分文档都在 /document 目录 大部分代码都在 /workspace 目录

    不过什么 Downloads,Document,Picture 里面的东西全没了

    79 条回复    2019-05-08 09:15:08 +08:00
    lupo
        1
    lupo   2019-04-03 13:59:21 +08:00 via Android
    😂
    zlccn
        2
    zlccn   2019-04-03 14:00:34 +08:00 via iPhone
    这酸爽...
    imaning
        3
    imaning   2019-04-03 14:02:02 +08:00   ❤️ 8
    节哀,三年前与你一样眼花过,多敲了一个空格,rm -rf / home
    cstj0505
        4
    cstj0505   2019-04-03 14:05:46 +08:00
    @imaning 我也是两年前切目录敲错了,没切过来,在 home 目录下执行了 rm -rf *
    之后文档代码都到根目录了
    oldcat0314
        5
    oldcat0314   2019-04-03 14:06:34 +08:00
    ......提神醒脑的好助手~
    aimerforreimu
        6
    aimerforreimu   2019-04-03 14:07:00 +08:00 via Android
    快用硬盘恢复工具救一下吧,前几天我也删了一次
    di94sh
        7
    di94sh   2019-04-03 14:07:55 +08:00 via Android
    把 rm 改成 mv 吧
    xoxo419
        8
    xoxo419   2019-04-03 14:08:01 +08:00
    通过目录分析, 你用的是 tp 框架?
    dswill
        9
    dswill   2019-04-03 14:08:48 +08:00
    我猜想,你是跑路。 删库跑路, 兄 dui,哈哈。
    cstj0505
        10
    cstj0505   2019-04-03 14:12:27 +08:00
    @oldcat0314 是啊,删完脑袋无比清醒,高速运转分析损失。发现只是平时的一些工作暂存文档还有 eclipse 工具等,vim 邮件和一些别的隐藏目录和文件都在,安心多了
    cstj0505
        11
    cstj0505   2019-04-03 14:13:26 +08:00
    @aimerforreimu 上次恢复过,文件名都乱码,算了
    omph
        12
    omph   2019-04-03 14:13:39 +08:00
    [rm-protection: A safe alternative for "rm".]( https://github.com/alanzchen/rm-protection)
    cstj0505
        13
    cstj0505   2019-04-03 14:14:13 +08:00
    @dswill 真不是啊,我自己工作机器
    root 用户还是 bash,rm 没提示,回车下去就没了
    cstj0505
        14
    cstj0505   2019-04-03 14:15:30 +08:00
    @di94sh 做好数据分离损失不大,mv 改了还要自动清空间,弄起来太折腾
    ZRS
        15
    ZRS   2019-04-03 14:36:11 +08:00
    常在河边走 哪能不湿鞋...
    faceair
        16
    faceair   2019-04-03 14:38:25 +08:00   ❤️ 6
    brew install trash
    alias rm trash
    openbsd
        17
    openbsd   2019-04-03 14:42:45 +08:00   ❤️ 10
    有同事问 为啥你两个字母的文件夹都要用 Tab 补全
    我笑而不语
    limbo0
        18
    limbo0   2019-04-03 14:47:47 +08:00 via Android
    mac 可以时间机器可以恢复,linux 还是 alias 预防吧
    hhyvs111
        19
    hhyvs111   2019-04-03 14:58:54 +08:00
    @faceair 谢谢,已改
    huqf10177225
        20
    huqf10177225   2019-04-03 15:09:50 +08:00
    哈哈哈哈,常在河边走,哪有不湿鞋,rm -rf *这个错误.我也犯过一次,吓死了
    ragnaroks
        21
    ragnaroks   2019-04-03 15:21:21 +08:00   ❤️ 1
    @openbsd 我也是敲 1 个首字母开始补全
    nicoljiang
        22
    nicoljiang   2019-04-03 15:28:21 +08:00
    去年在服务器上 rm -rf /data 了
    no1xsyzy
        23
    no1xsyzy   2019-04-03 15:35:21 +08:00   ❤️ 2
    千万别依赖 alias,这个有更惨痛的事故。

    唯一的办法是所有 rm 前多检查,甚至输完后回车前上个厕所倒杯咖啡。
    大型 enter 键有奇效。

    另外,多备份。
    a22124497
        24
    a22124497   2019-04-03 15:38:50 +08:00
    只要没跑路,说明问题不大
    cstj0505
        25
    cstj0505   2019-04-03 15:46:07 +08:00
    @no1xsyzy 请问下 alias 为啥不好
    no1xsyzy
        26
    no1xsyzy   2019-04-03 15:47:46 +08:00   ❤️ 4
    @cstj0505 在没有 alias 的机器上以为有 alias,因此忽视了检查,核心在 “依赖”。
    tourist2018
        27
    tourist2018   2019-04-03 15:48:00 +08:00
    我之前也删除过一次
    SmiteChow
        28
    SmiteChow   2019-04-03 16:09:05 +08:00
    这时候就考验你按 Ctrl+C 的速度了和反应了
    nanaw
        29
    nanaw   2019-04-03 16:16:18 +08:00
    我就不明白,你们不加-f 行么,多一步真的很麻烦吗?
    knightdf
        30
    knightdf   2019-04-03 16:21:50 +08:00
    @nanaw 几千个文件的话你准备按 y 按到天荒地老么
    qianyiyu98
        31
    qianyiyu98   2019-04-03 16:22:09 +08:00
    看见标题就毫不犹豫地点进来了,果然没让我失望
    zyp0921
        32
    zyp0921   2019-04-03 16:25:24 +08:00
    惨痛教训, 当时多敲了个空格 rm -rf / tmp/。。。
    anzu
        33
    anzu   2019-04-03 16:38:26 +08:00
    必须依赖 alias
    alias del="trash-put"
    alias rm="echo \"Use 'del', or prepend a slash to bypass the alias\""
    v2chou
        34
    v2chou   2019-04-03 16:44:19 +08:00
    @imaning 不厚道的笑了
    v2chou
        35
    v2chou   2019-04-03 16:47:42 +08:00
    兄弟们 不说说怎么避免吗 安全删除文件文件夹
    sola97
        36
    sola97   2019-04-03 16:53:04 +08:00 via Android
    我一般习惯性的敲两下 tab 看看反应对不对
    zgcwkj
        37
    zgcwkj   2019-04-03 16:54:46 +08:00
    没事,大不了在来一次!(下次注意点吧)
    chocotan
        38
    chocotan   2019-04-03 16:57:40 +08:00
    我也不小心删过一次,还好反应快 ctrl+c 了,但已经有部分文件被删掉了
    z775781
        39
    z775781   2019-04-03 16:59:48 +08:00
    我一般是 rm -rf /xxx/ 然后敲完会耐心看一下后面,已经玩怕了
    creanme
        40
    creanme   2019-04-03 17:05:21 +08:00
    @v2chou 把 rm 替换成 mv。固定移动到一个目录,定期自动清除里面的东西。
    onepiece5568
        41
    onepiece5568   2019-04-03 17:09:21 +08:00
    我如果要删一个文件夹,进这个文件夹目录输 pwd 把当前路径复制过去,再 rm -rf
    zxcvsh
        42
    zxcvsh   2019-04-03 18:15:01 +08:00 via iPhone
    Linux 命令确实很提神,最开始杀个进程都要看半天
    lusi1990
        43
    lusi1990   2019-04-03 18:28:46 +08:00 via Android
    过两年就麻木了,多备份是王道
    yingfengi
        44
    yingfengi   2019-04-03 19:38:45 +08:00 via Android
    @openbsd Tab 还能这么用。。。。学到了,Get√
    liangdu
        45
    liangdu   2019-04-03 19:50:36 +08:00 via Android
    chmod -rf 000 / 恢复系统不就可以了吗😂
    HangoX
        46
    HangoX   2019-04-03 20:22:08 +08:00
    问问大家,rm 就没有预运行这个参数吗?我看 git clean --dry-run 可以告诉你清除什么文件,但是 rm 我没找到
    fox0001
        47
    fox0001   2019-04-03 20:27:11 +08:00 via Android
    论自建服务器的重要性。图片文档都放在私人云盘,代码自建 git。手机、电脑都是客户端般的存在
    szkoda
        48
    szkoda   2019-04-03 20:31:28 +08:00
    alias rm trash
    拯救了无数手贱的时候。。
    mskf
        49
    mskf   2019-04-03 21:25:01 +08:00
    update t_XXX SET... 回车!唉,where 好像忘了写了
    akira
        50
    akira   2019-04-03 21:48:07 +08:00
    按 r 不按 f
    宁愿一个个目录确认删除
    liquor233
        51
    liquor233   2019-04-03 22:42:52 +08:00
    @imaning 这也太好笑了吧
    24owls
        52
    24owls   2019-04-03 22:44:21 +08:00 via iPad
    前些日子也在 home 目录里 rm -rf * 了一次,本来是想删除一个子目录,错误的以为自己已经 cd 进去了,幸亏及时反应过来止住了。
    清点损失的时候发现,由于我都是把数据存放在 /data 里面,home 里只放了几个到 /data 里面的 symlink,其实只删掉了一些 local 里面的一些程序( npm modules, python env 之类的),dot files 都还在,数据也只要 symlink 回去就行了。
    从此发现了 symlink 的好处😂
    SharkIng
        53
    SharkIng   2019-04-04 04:25:53 +08:00
    为什么不用 `rm -rI` 呢?
    Hallelu
        54
    Hallelu   2019-04-04 08:43:31 +08:00 via iPhone
    貌似也是一年前这个期间,我也眼花了下...
    kylechou94
        55
    kylechou94   2019-04-04 08:53:11 +08:00 via iPhone
    用 mv 移动要删除的到 tmp 文件夹,归档一个月删除
    cstj0505
        56
    cstj0505   2019-04-04 09:09:14 +08:00
    @no1xsyzy 哈哈,这个才是最悲催的
    shm7
        57
    shm7   2019-04-04 09:10:40 +08:00 via iPhone
    书里面都讲了,你先 ls 一下,再找 history 把 ls 改掉
    cstj0505
        58
    cstj0505   2019-04-04 09:13:37 +08:00
    @24owls 我现在就这样的,home 目录下只用作平时临时文档,代码,工具存储的地方,重要的一律在根目录下建目录存放。
    这也是两年前和你一样切目录没切过去把 home 清了的教训
    wineast
        59
    wineast   2019-04-04 10:15:43 +08:00
    自从出过一次事故以后,现在都是用 rmtrash,https://github.com/PhrozenByte/rmtrash,类似加了个 windows 回收站的概念
    zzlit
        60
    zzlit   2019-04-04 10:41:35 +08:00
    我是来学习抢救措施的
    TingHaiJamiE
        61
    TingHaiJamiE   2019-04-04 10:42:07 +08:00
    下午不清醒的时候在自己的电脑上执行过,rm -rf / ,漏了一个点
    看到权限问题之后加上了 sudo...几秒后意识到问题...
    mostkia
        62
    mostkia   2019-04-04 10:42:22 +08:00
    多备份吧,我这边都是每天备份的,而且挂载盘每次备份完成之后自动断开。当然也可以使用楼上几位说的方案,吧 rm 换成 mv,把将要删除的文件存放到类似回收站的地方,然后写个计划任务定时删除,这样也有挽留的余地。
    glacer
        63
    glacer   2019-04-04 10:44:40 +08:00
    alias cd='rm -rf'
    LichMscy
        64
    LichMscy   2019-04-04 10:45:06 +08:00
    foolyf
        65
    foolyf   2019-04-04 10:50:41 +08:00
    前几天,删文件。脑子一抽。输入了个 rm -rf /. 看了几秒中 bash,立刻 command + C. 吓出一身冷汗。还好是自己的电脑....
    Mutoo
        66
    Mutoo   2019-04-04 10:57:49 +08:00
    最搞笑的这个:
    https://stackoverflow.com/questions/55323391/delete-database-accidentally-by-a-bash-rescue-please
    题主手下的开发把 shell 注释写成 //

    OUT_DIR = /tmp/data // 注意这玩意儿不是注释
    rm -rf $OUT_DIR/* // 于是这里杯具了
    ys0290
        67
    ys0290   2019-04-04 11:04:55 +08:00 via iPhone
    还是要多干这种事,以后就记住了,形成条件反射了
    695975931
        68
    695975931   2019-04-04 11:19:25 +08:00
    windows 服务器表示木有这个问题。
    retroxs
        69
    retroxs   2019-04-04 11:22:03 +08:00 via iPhone
    alias rm=trash 😂
    lrvy
        70
    lrvy   2019-04-04 11:22:08 +08:00
    安装个 trash-cli  
    # 用 trash-cli 包的 trash 命令软链接到 rm 上,改为移动到 Trash,防止误删除
    alias rm=trash
    cirton
        71
    cirton   2019-04-04 11:28:32 +08:00
    避免办法就是不要午睡!
    Stlin
        72
    Stlin   2019-04-04 11:37:26 +08:00
    rm -rf 的时候 路径都是 tab 出来的 防止打错
    upczww
        73
    upczww   2019-04-04 11:37:31 +08:00 via Android
    @glacer 你是魔鬼吗
    mxalbert1996
        74
    mxalbert1996   2019-04-04 11:44:37 +08:00 via Android
    $ rm -rf /*
    zsh: sure you want to delete all 37 files in / [yn]?
    zsh 大法好
    lleony
        75
    lleony   2019-04-04 11:53:22 +08:00 via Android
    @lrvy 已经替换,现在舒服多了
    Fraotisc
        76
    Fraotisc   2019-04-04 11:56:45 +08:00 via Android
    可以装个 safe-rm,这个应用会阻止你删除系统文件夹的
    ACool
        77
    ACool   2019-04-04 12:30:25 +08:00 via Android
    每次敲 rm 的时候,参数放在最后,例:rm logs/ -rf
    Kobayashi
        78
    Kobayashi   2019-05-07 14:04:12 +08:00
    @Mutoo 你链接里这个骚操作确实厉害。我再来补充几个更吊的。

    这个 .bash_history 不错,我来 source 一下它。https://www.v2ex.com/t/527839

    在 .zshrc 内 `echo "foobar" >> ~/.zshrc`. 我这配置文件自己会长大?破 ZSH,老子不用了。https://www.v2ex.com/t/501245
    cstj0505
        79
    cstj0505   2019-05-08 09:15:08 +08:00
    @Kobayashi 哈哈哈哈,哪位老哥承包我一天笑点
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2184 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 16:38 · PVG 00:38 · LAX 08:38 · JFK 11:38
    ♥ Do have faith in what you're doing.