V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
tywtyw2002
V2EX  ›  Linux

再一次把 home 目录给删了

  •  1
     
  •   tywtyw2002 · 2015-02-13 13:47:33 +08:00 · 11455 次点击
    这是一个创建于 3567 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近比较悲催,在三个月内连续删了2次home目录。

    丢了一堆config文件,还有几个project的代码。

    丢的代码都是git 在本地commit的,没有push上去。之前的习惯都是一个feature写完了才push,结果修了一半的代码就这么丢了。

    备份真的是非常的重要!!!

    终结一下,这两次误删都是一个原因。
    就是不知为什么在某个path中出现了一个叫 `~`的空白文件。
    顺手就打上 rm -rf ~ [TAB] [entry]。
    然后就反省去吧。

    感觉可能与zsh的不全有关,结果对~不做补全(补全~ 为 \~)
    76 条回复    2015-02-25 10:27:59 +08:00
    jerryouyang
        1
    jerryouyang  
       2015-02-13 13:49:57 +08:00 via Android
    多坑自己几次,然后你就。。。习惯了
    clino
        2
    clino  
       2015-02-13 13:51:51 +08:00
    警醒一下...不过我一般来说会输一下 ~/xxx 后面的路径然后再按tab
    lyragosa
        3
    lyragosa  
       2015-02-13 13:52:55 +08:00
    我又想起了那个装adobe系列软件将自己从rm -rf / 中拯救出来的故事

    由此adobe就如同传说中救世的英雄们一样,在OS X大陆的史诗中传唱着。
    leassy
        4
    leassy  
       2015-02-13 13:53:25 +08:00
    ~不是ROOT目录么
    coolcfan
        5
    coolcfan  
       2015-02-13 13:56:21 +08:00
    这个叫 ~ 的文件是谁建的,抓到没……
    sorcerer
        6
    sorcerer  
       2015-02-13 13:57:15 +08:00
    @leassy ~是当前用户所在目录
    y15m1d23
        7
    y15m1d23  
       2015-02-13 13:57:32 +08:00
    不要用 -f
    mortal
        8
    mortal  
       2015-02-13 14:03:43 +08:00
    @lyragosa 求详情
    codeninja
        9
    codeninja  
       2015-02-13 14:15:18 +08:00
    @sorcerer 是当前用户的home目录啊
    codeninja
        10
    codeninja  
       2015-02-13 14:17:04 +08:00
    而且还是要先找到原因 不会平白出现一个名为~的空白文件吧
    估计是楼主习惯不大好 经常 打完~就回车 搞不好哪次直接 touch ~ 了自己还不知道
    oott123
        11
    oott123  
       2015-02-13 14:25:21 +08:00 via Android
    删文件用 -r 干啥…
    tywtyw2002
        12
    tywtyw2002  
    OP
       2015-02-13 14:36:03 +08:00 via iPhone
    @codeninja 不知道怎么出来的,很多时候莫名奇妙。
    有些程序支持~, 但是有些不支持~ 必须用$HOME

    不支持的会给你搞个~出来。

    我基本不用touch。
    tywtyw2002
        13
    tywtyw2002  
    OP
       2015-02-13 14:38:58 +08:00 via iPhone
    @oott123 哈哈。习惯了,因为很清楚自己是在干啥。。

    决定这几天搞搞snapshot做备份。
    lyragosa
        14
    lyragosa  
       2015-02-13 14:40:03 +08:00   ❤️ 90
    @mortal

    许多年前,自从OS X女神从先代女神Mac OS 9那里接过了Mac世界的控制权,Mac世界就再次变得安静祥和繁荣昌盛。

    不过,不久之后,有一群来自远古的Adobe家族的人类,他们自称是叫做Photoshop,Dreameaver,Illustrator和Indesign,来到了OS X大陆,并在大陆北侧最大的贸易都市/Application城市定居。

    他们与这里其他的居民不同,从来不将自己的资源在OS X教会注册为.app,而是将所有的资源文件全部单独存放,让附近的邻居们颇有言辞。但后来,由于Adobe的这些勇士经常为Mac世界斩妖除魔,解决大陆的各种危机,因此OS X女神和Mac大陆的原住民就并没有为止再多做干扰。只是偶尔OS X女神在下界巡视工作的时候,会对 Adobe 家族产生的大量废弃缓存,占用了城市大面积地区给予一些小小的批评。

    但有一天,世界改变了。

    教会的地下监牢中关押的rm恶魔,在一次意外中逃离了教会的控制,本来,为了防止意外,先代女神Mac OS 9对rm恶魔做了极其严格的限制,但还是因为一次小小的疏漏,而让rm恶魔从封印中逃出。

    很快,一直垂涎于Mac世界的大魔神,试图利用rm恶魔颠覆OS X女神的统治,大魔神利用教会对sudo管理的松懈,利用em恶魔唤醒了曾经毁灭了无数个世界,无数个次元的力量: rm -rf /

    很快,整个世界开始被撕裂。

    本来按照大魔神的事先设想,女神掌控世界的核心,也就是教会的所在地,/bin尖塔会被先撕碎,当女神不再能控制世界,整个大陆的毁灭就只是时间问题了。

    但没想到的时候,大陆的崩坏并不是从教会开始,而是从大陆北边的/Application都市开始,而Adobe家族的所在地,就在这个城市的最北侧。

    没有任何人可以阻止rm恶魔对这个世界的吞噬,凡人的抵抗只不过是螳臂当车。但人类在最危险的时刻也没有放弃希望。Adobe家族的勇士们,利用平时产生的大量资源文件和缓存,极大了拖延了rm恶魔的进攻,rm恶魔被卡在城市的最北侧,给予了/Application城市的其他居民逃离的时间,也让教会所在的/bin尖塔得以幸存。

    很快,OS X女神发现了这一异状,她展开了自己全部的力量,通过教会顶端的女神水晶,向整个大陆释放了 Ctrl + C 之光,rm恶魔在女神的光辉中灰飞烟灭。/Application都市也得以幸存。

    Mac世界也从即将毁灭的危机中重生了。

    为了避免这一次事故再次发生,OS X女神使用了女神的力量 alias rm 'rm -l',将rm恶魔再次封印在了教会的监牢中,尽管世界恢复了和平,但经过这一场异变,Adobe 家族的英雄们,在这场事件中永远的消失在了次元的黑洞中,再也无法回来了。

    这就是在后世吟游诗人传唱的史诗中, Adobe 四英雄拯救Mac世界的故事。
    larsenlouis
        15
    larsenlouis  
       2015-02-13 14:44:48 +08:00
    ./ 大法好
    Havee
        16
    Havee  
       2015-02-13 14:47:16 +08:00
    以前 vim 保存文件的时候,:wq! 结果打成了 :wq~
    然后看到,不对,怎么某目录下多了个 ~ 文件,然后一时没反应过来,rm -rf ~,按下回车后才反应过来,应该 rm ./~才对
    十多年中唯一的一次糗事,好吧,-rf 真不是个好习惯。
    Lentin
        17
    Lentin  
       2015-02-13 15:00:36 +08:00
    adobe的文件有那么多吗,上面的故事真是精彩啊~
    skydiver
        18
    skydiver  
       2015-02-13 15:04:43 +08:00
    @Havee 哈哈哈估计楼主也这样弄的
    tywtyw2002
        19
    tywtyw2002  
    OP
       2015-02-13 15:07:04 +08:00 via iPhone
    @Havee 我是有的时候。mv xxxxx ~结果 就多了一个~
    LINAICAI
        20
    LINAICAI  
       2015-02-13 15:27:30 +08:00
    还好吧 我试过不小心rm -rf /
    。。。泪奔
    xiaoai
        21
    xiaoai  
       2015-02-13 15:29:04 +08:00
    @lyragosa 脑洞真是太大了哈哈哈
    ssenkrad
        22
    ssenkrad  
       2015-02-13 15:44:30 +08:00 via Android
    @lyragosa 别写程序了,写小说吧,你更适合干这个
    pandada8
        23
    pandada8  
       2015-02-13 15:53:59 +08:00
    zsh补全的时候会自动转义的吧……
    我这里rm 然后两下TAB结果是rm \~
    aricxu
        24
    aricxu  
       2015-02-13 15:56:20 +08:00
    @lyragosa 太厉害了。。。
    MidoriYakumo
        25
    MidoriYakumo  
       2015-02-13 15:56:50 +08:00 via Android
    快来用btrfs,再也不用回收站(*^ω^*)
    zhicheng
        26
    zhicheng  
       2015-02-13 16:20:10 +08:00
    第一次骂上帝,第二次骂自己,第三次呵呵呵吧。
    flash866
        27
    flash866  
       2015-02-13 16:29:45 +08:00
    呵呵 我用winscp删除文件 点击左侧目录树 没留意右侧居然没有跟着刷新 然后全选delete
    smalldirector
        28
    smalldirector  
       2015-02-13 17:08:25 +08:00
    我上次是maven的插件生成的一个~的目录,他不支持~/xxx/xxx写法,只能写绝对的路径,当时直接 rm -rf ~,看到permisson denied的时候,心都碎了。。。
    xi_lin
        29
    xi_lin  
       2015-02-13 17:17:46 +08:00
    代码还是多备份吧,每天push remote多好
    vonnyfly
        30
    vonnyfly  
       2015-02-13 17:26:30 +08:00
    跟楼主一样的情况,MAC的home目录被rm -rf ~删了,一不小心多了个~文件,手贱zsh也没提示的删了,好多G的代码,哭晕……
    现在痛定思痛,写了一篇总结博客,有兴趣可以看看: http://vonnyfly.github.io/2015/01/23/rm%E5%91%BD%E4%BB%A4%E7%9A%84%E6%8B%AF%E6%95%91/
    sorcerer
        31
    sorcerer  
       2015-02-13 17:29:02 +08:00 via iPhone
    @codeninja 我就是这个意思-_-#
    vonnyfly
        32
    vonnyfly  
       2015-02-13 17:30:22 +08:00
    @smalldirector 我能说最新的Android Studio也是这么个尿性么? 不识别~,然后悲剧的rm -rf 删错了。
    sdysj
        33
    sdysj  
       2015-02-13 17:34:07 +08:00
    码农不做备份就是对自己不尊重。。。
    banbanchs
        34
    banbanchs  
       2015-02-13 18:22:38 +08:00
    多用./
    lyragosa
        35
    lyragosa  
       2015-02-13 18:24:38 +08:00   ❤️ 1
    @ssenkrad
    居然被发现了我的副业233

    其实我的确在构思一篇以中国手机游戏产业为基础的架空世界单元剧小说。
    名为MobileGamingCN的异界大陆(对,就是起点网文的调调),有着来自天界的两大守护女神建立了两个国家,ios empire 和 android federal,并且建立了依附于守护女神的教会appstore & playstore。大陆的四处遍布着各种各样的冒险家组织和独立冒险家,以狩猎怪物获得怪物身上的素材换取金币而生。

    但随着大陆周边地下城的怪物越来越强大,单打独斗的冒险者很难依赖此为生,于是一些雇佣兵公会成立了,他们通过向守护女神的教会承接任务,并以自身的影响力号召当地的冒险家组织为自己效力,因为教会的人总是对人爱理不理,而且联系起来也颇为麻烦,于是接地气好说话的当地雇佣兵公会实际上承担了很多教会的职责。

    不过这些年来,雇佣兵公会的实力越来越强,控制了越来越多的城市,甚至到了能要挟冒险家的地步,一次地下城的狩猎往往大部分收益都被雇佣兵公会赚走,冒险家们只能拿到很少的收益,甚至教会也对这种现状爱理不理。

    于是,一帮不甘于现状的冒险家们,试图组建了一个联盟,来挑战这种不公的现状。而他们不知道的是,来自另一个世界的守护女神windows,也化身为人类潜藏在大陆上,筹划着一个新的计划……MobileGamingCN大陆即将陷入一场血雨腥风中……


    目前正在构思这个故事的前传啊哈哈(逃

    (附:以上设定无版权,可自行取用,反正以我的懒癌……)

    好像越写越远跑题了,求折叠。
    wangsijie93
        36
    wangsijie93  
       2015-02-13 18:29:06 +08:00
    Dropbox实时备份工作目录
    coolcfan
        37
    coolcfan  
       2015-02-13 18:31:05 +08:00
    @lyragosa 23333333 原来Adobe是这么拯救世界的
    xifangczy
        38
    xifangczy  
       2015-02-13 19:29:10 +08:00
    最近见的特别多删掉 /home / 什么的
    jianghu52
        39
    jianghu52  
       2015-02-13 19:39:49 +08:00
    -rf 已经阻止不了我这种手比脑子快的人了。。。。
    KyL
        40
    KyL  
       2015-02-13 21:11:43 +08:00
    所以我都不怎么记rm命令的参数,需要用的时候都要先回想一下。-f是什么参数?我不知道不知道。。。
    skydiver
        41
    skydiver  
       2015-02-13 21:20:38 +08:00
    brew install trash
    alias rm=trash
    huangzhidu
        42
    huangzhidu  
       2015-02-13 21:24:53 +08:00 via iPad
    @KyL force, 也可以叫fxxked。。。因为不小心就会悲剧
    mufeng
        43
    mufeng  
       2015-02-13 21:34:17 +08:00
    @lyragosa ....无话可说
    icedx
        44
    icedx  
       2015-02-13 21:53:23 +08:00
    昨天刚刚做的 在一台红米上敲入了rm -rf /
    ssenkrad
        45
    ssenkrad  
       2015-02-13 21:55:05 +08:00 via Android
    @icedx ………结果呢?
    icedx
        46
    icedx  
       2015-02-13 22:02:47 +08:00
    @ssenkrad 结果就是 /data /system /sdcard0 /sdcard1 都空了 还好/recovery 没挂载 在recovery 中刷个包 在刷回原厂...

    吐槽下MTK 机器真是蛋疼 刷机工具驱动安装困难不说 使用也困难 从来没成功过 还不能用fastboot 刷...
    lsmgeb89
        47
    lsmgeb89  
       2015-02-13 23:05:30 +08:00
    rm 的时候千万要看清楚,不要徒手快。
    randyzhao
        48
    randyzhao  
       2015-02-14 02:06:20 +08:00
    rm -rf 用那么熟练真不是啥好事
    现在很少用 -f
    怕出事...

    习惯性删 /home/xxx 这个, 我想了想, 平时不把代码放 home 似乎就没事了
    xupefei
        49
    xupefei  
       2015-02-14 04:37:08 +08:00
    @lyragosa 看着眼熟,Hyperdimension Windows Re;Birth1?
    michaelivpub
        50
    michaelivpub  
       2015-02-14 05:43:46 +08:00
    重要目录写权限给去掉行不
    mnsw
        51
    mnsw  
       2015-02-14 07:04:14 +08:00
    我是来点赞的!哈哈哈
    loading
        52
    loading  
       2015-02-14 07:21:43 +08:00
    liubiantao
        53
    liubiantao  
       2015-02-14 08:54:48 +08:00
    第一次之后还不备份啊。买个 time capsule 吧。
    另外我都是习惯每次 push,就怕电脑出问题,反正 push 一下也不会怀孕。
    demobin
        54
    demobin  
       2015-02-14 09:44:35 +08:00
    可以恢复啊,如果只有几个重要文件那直接grep -a -B5 -A5 -i "xxx" /dev/sdaN > /tmp/file就行了,多的话用extundelete什么的也是可以的。
    kfll
        55
    kfll  
       2015-02-14 10:26:39 +08:00 via iPhone
    换一个没有 ~ 的键盘指日可待了!
    bombless
        56
    bombless  
       2015-02-14 10:29:30 +08:00 via iPhone
    多建几个branch,多push过去吧
    mcfog
        57
    mcfog  
       2015-02-14 10:34:51 +08:00 via Android
    日常用brew install rmtrash

    root或者在服务器上mv XX /tmp

    真要用rm的时候,站起来走一圈深呼吸坐下来再检查一次
    mcfog
        58
    mcfog  
       2015-02-14 10:42:22 +08:00 via Android
    另外,千万千万不要alias rm! 纵容自己放松对rm的敬畏的,迟早把服务器或别人的电脑给rimraf掉。
    pkking
        59
    pkking  
       2015-02-14 10:59:16 +08:00
    请不要使用root作为日常账户
    Zzway
        60
    Zzway  
       2015-02-14 11:22:00 +08:00
    这某种程度上可以算作用命令行操作的缺陷?
    111111111111
        61
    111111111111  
       2015-02-14 11:32:02 +08:00
    @Havee 经典案例
    sneezry
        62
    sneezry  
       2015-02-14 12:20:02 +08:00 via iPad
    @lyragosa 魔兽即视感 LoL
    icylogic
        63
    icylogic  
       2015-02-14 12:34:55 +08:00 via Android
    我还是习惯像 Windows 一样弄一个回收站然后 alias 一下,不用说 rm -rf / 这类的,就是普通文件也应该有补救手残的机会啊。
    timothyye
        64
    timothyye  
       2015-02-14 12:36:13 +08:00 via Android
    我的config都放gist的
    lhuiwu6
        65
    lhuiwu6  
       2015-02-14 13:54:38 +08:00
    我昨天直接sudo dd if=/dev/zero of=/dev/sda
    然后电脑直接黑屏了。。。
    semicircle21
        66
    semicircle21  
       2015-02-14 14:08:55 +08:00
    @leassy 哈 root敢死队成员, 你暴露了!
    standin000
        67
    standin000  
       2015-02-14 16:12:08 +08:00
    alias rm="mv --target-directory ~/Trash $1 $2"
    nickleefly
        68
    nickleefly  
       2015-02-14 16:48:37 +08:00
    可以这么删除 `rm -rf "/home/user/path/to/~"`
    kn007
        69
    kn007  
       2015-02-14 17:35:44 +08:00
    我曾经删过一次。。。因为当时人才起床还很模糊。。以后就再也没搞错过
    kn007
        70
    kn007  
       2015-02-14 17:37:27 +08:00
    @lyragosa 哈哈哈哈哈哈哈
    kawaiiushio
        71
    kawaiiushio  
       2015-02-14 19:45:31 +08:00
    @leassy ~目录是user的默认目录 用于存放user的东西
    jpuyy
        72
    jpuyy  
       2015-02-14 22:03:31 +08:00 via iPhone
    删东西的时候ls -li ,然后通过 inode 把文件删除
    waynehuge
        73
    waynehuge  
       2015-02-15 00:51:07 +08:00 via Android
    文件为毛要加"-r",
    f0rger
        74
    f0rger  
       2015-02-15 09:50:56 +08:00
    我导师告诉我,当你敲rm -rf的时候,先CTRL+C,然后pwd一下
    meizhile
        75
    meizhile  
       2015-02-15 09:51:51 +08:00 via Android
    @lyragosa 这文采,付费订阅也没问题啊!
    402645707
        76
    402645707  
       2015-02-25 10:27:59 +08:00 via Android
    @lyragosa 笑趴了。同求付费订阅
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3193 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:27 · PVG 21:27 · LAX 05:27 · JFK 08:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.