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

Mac 上不小心按了 rm -rf ~/ 还能恢复么?

  •  
  •   beginor ·
    beginor · 2020-01-06 15:41:30 +08:00 · 15131 次点击
    这是一个创建于 1785 天前的主题,其中的信息可能已经有所发展或是发生改变。

    好吧,这次到我了。 不小心按了 rm -rf ~/, 难道真的要跑路!

    Google 了一下, 都说在 Mac 上执行 rm -rf 基本上就是 bye-bye 的意思。

    第 1 条附言  ·  2020-01-06 20:16:54 +08:00
    rm -rf ~/ 删的是用户主目录, 没有使用 sudu,是不需要输入密码的。

    下载了个恢复软件 Disk Drill 扫描了一下午,也没找回什么有用的东西, 多数都是回收站清空的东西。

    最主要的损失是 Docker 的镜像和容器都没了, 数据库文件直接就没有了, 损失惨重!

    接下来还是装个 trash 吧, 以后慎用 rm 命令。
    第 2 条附言  ·  2020-01-07 09:55:44 +08:00

    已经使用 brew 安装 trash, 然后在 ~/.bash_profile 文件添加 alias :

    alias rm="trash"
    

    希望以后不会再出现误删的情况了。

    第 3 条附言  ·  2020-01-07 12:46:46 +08:00
    已经打开时间机器的自动备份, 另外 #57 的 V 友说的对, 把 alias 去掉了, 以后只用 trash 来删除, 万一删错还能找回来。
    73 条回复    2020-05-22 15:49:27 +08:00
    ysc3839
        1
    ysc3839  
       2020-01-06 15:44:21 +08:00
    基本上不行。macOS 文件系统的相关资料很少,应该没什么数据恢复软件支持吧,有估计也很贵。
    mouyase
        2
    mouyase  
       2020-01-06 15:44:29 +08:00 via Android
    👋🏻
    teddybun
        3
    teddybun  
       2020-01-06 15:45:10 +08:00
    去售后吧,没有试过
    atonku
        4
    atonku  
       2020-01-06 15:47:18 +08:00   ❤️ 1
    怎么按的,这又不是一个键
    594kJ
        5
    594kJ  
       2020-01-06 15:48:39 +08:00
    Time Machine 不知道有没有用咧?
    puzzle9
        6
    puzzle9  
       2020-01-06 15:48:57 +08:00 via Android
    @atonku 误删 还可能是 tab 和回车按快了
    ferock
        7
    ferock  
       2020-01-06 15:49:56 +08:00
    既然只是 ~/. 那重新开个账户,不行就重装咯。。。。自己的电脑,自己扛啊!
    dorothyREN
        8
    dorothyREN  
       2020-01-06 15:53:04 +08:00
    home 删了就重新添加一个用户啊,又不是删根了,跑什么路
    WFMS
        9
    WFMS  
       2020-01-06 15:53:41 +08:00
    主题:程序员 标签分别是:MAC 小心 跑路 bye-bye
    造句:不小心按了 rm -rf ~/, 跑路! bye-bye !
    minbaby
        10
    minbaby  
       2020-01-06 16:02:41 +08:00
    SIP 没开的话,就是你想删除 / 都很难,用 root 账号去操作系目录你会发现没有权限。https://support.apple.com/en-us/HT204899
    Ariy
        11
    Ariy  
       2020-01-06 16:15:51 +08:00
    我记得不会直接删的,这行代码好像开超级用户才能运行。
    sytnishizuiai
        12
    sytnishizuiai  
       2020-01-06 16:47:01 +08:00
    Time Machine 可以试试,我之前退回公司电脑,按照别人的教程重置系统挂了,重新下载几十个小时,用 Time Machine 直接半小时内恢复了,当时打开的页面都还在。。。
    bubuyu
        13
    bubuyu  
       2020-01-06 16:57:23 +08:00
    话说你们 Time Machine 是挂在外置硬盘还是 NAS 上?
    Dvel
        14
    Dvel  
       2020-01-06 17:00:03 +08:00   ❤️ 1
    有种东北小孩舔铁门的感觉,都说不要 rm -rf,但就是管不住这手
    ben1024
        15
    ben1024  
       2020-01-06 17:00:11 +08:00
    删除记得要开权限
    foamvalue
        16
    foamvalue  
       2020-01-06 17:02:05 +08:00
    居然,不用输密码?
    nnqijiu
        17
    nnqijiu  
       2020-01-06 17:02:35 +08:00
    输密码也是不小心?
    loudylee
        18
    loudylee  
       2020-01-06 17:13:01 +08:00
    只要有时间机器在,随便怎么折腾都没事。
    renyapeng
        19
    renyapeng  
       2020-01-06 17:17:57 +08:00   ❤️ 1
    删除都是用 trash 删,brew install trash
    Raymon111111
        20
    Raymon111111  
       2020-01-06 17:20:20 +08:00
    怎么不小心输的密码?
    MartinWu
        21
    MartinWu  
       2020-01-06 17:25:46 +08:00
    @Raymon111111 #20 这不需要输密码。
    xuxuzhaozhao
        22
    xuxuzhaozhao  
       2020-01-06 17:29:19 +08:00
    造孽啊!
    dany813
        23
    dany813  
       2020-01-06 17:31:43 +08:00
    牛逼啊 老哥
    Raymon111111
        24
    Raymon111111  
       2020-01-06 17:34:56 +08:00
    @MartinWu 那等于是天天拿着个炸弹到处跑, 有一天不小心炸了也是情有可原
    MartinWu
        25
    MartinWu  
       2020-01-06 17:36:56 +08:00
    @Raymon111111 #24 我 get 不到你这回复跟我说的有什么关系。
    MartinWu
        26
    MartinWu  
       2020-01-06 17:37:27 +08:00
    @Raymon111111 #24 自己的 HOME,一般正常情况下,自己肯定有所有权的。 何来 rm 操作还需要输入密码的?
    Raymon111111
        27
    Raymon111111  
       2020-01-06 17:48:00 +08:00
    @MartinWu 还以为是 /, 用户没了重来一下就好了吧, 操作系统还在
    MartinWu
        28
    MartinWu  
       2020-01-06 17:52:07 +08:00
    @Raymon111111 #27 我感觉个人电脑,更重要的数据还是在 HOME 下,系统没了就重装得了,个人用户下的资料没了,就真没了。
    yuxuan
        29
    yuxuan  
       2020-01-06 17:54:36 +08:00   ❤️ 3
    这时候就体现出来装 Adobe 套装的好处了 之前朋友执行了之后一分钟才反应过来 紧急停止后发现 连个 Adobe 文件见都还没删完😂
    yuxuan
        30
    yuxuan  
       2020-01-06 17:55:05 +08:00
    @yuxuan 好吧 没看到是 home😂
    Fitz
        31
    Fitz  
       2020-01-06 18:54:04 +08:00   ❤️ 1
    删过一次之后就默默加上 alias rm=trash 了
    Tink
        32
    Tink  
       2020-01-06 18:59:36 +08:00 via iPhone
    家目录问题不大
    xupefei
        33
    xupefei  
       2020-01-06 19:01:31 +08:00 via iPhone
    apfs 的话可能有 local snapshot 可以用作恢复。
    zhuanggu
        34
    zhuanggu  
       2020-01-06 19:18:34 +08:00
    我就想知道 怎么不小心按的这么多个字符?
    Juszoe
        35
    Juszoe  
       2020-01-06 19:26:22 +08:00
    已经不用 f 参数了
    Sngo
        36
    Sngo  
       2020-01-06 19:30:43 +08:00 via iPhone
    这还能不小心按?
    raysmond
        37
    raysmond  
       2020-01-06 19:39:32 +08:00
    time machine 一般备份都在另一块盘上,可以
    littleangel
        38
    littleangel  
       2020-01-06 19:59:09 +08:00 via iPhone
    遇见这种情况 就要看手速了 反应快 损失能少点
    0x4F5DA2
        39
    0x4F5DA2  
       2020-01-06 20:14:57 +08:00
    @xupefei 是这样的,即使没有备份过进入时间机器后也有最近的快照
    https://support.apple.com/zh-cn/HT204015
    https://support.apple.com/zh-cn/HT209152
    beginor
        40
    beginor  
    OP
       2020-01-06 20:20:12 +08:00 via Android
    @0x4F5DA2 我去看看,谢谢!
    beginor
        41
    beginor  
    OP
       2020-01-06 20:27:19 +08:00 via Android
    @0x4F5DA2 我晕, 时间机器没开 😭
    IgniteWhite
        42
    IgniteWhite  
       2020-01-06 21:18:06 +08:00
    是 sudo 不是 sudu。。。兄弟需要了解*nix 基础知识惹
    songsong
        43
    songsong  
       2020-01-06 21:23:49 +08:00
    误删 赶紧 command + c 有些是 ctrl+c
    HuangLibo
        44
    HuangLibo  
       2020-01-06 21:26:51 +08:00
    请用 mv 代替 rm
    fvckDaybyte2
        45
    fvckDaybyte2  
       2020-01-06 21:34:18 +08:00
    我当年也是 rm -rf ~,因为当前目录有一个文件夹就叫~,结果被 rm 果断无视,直接开始删我的 home
    beginor
        46
    beginor  
    OP
       2020-01-06 22:23:30 +08:00 via Android
    @IgniteWhite 手机上不小心发错了
    John60676
        47
    John60676  
       2020-01-07 09:11:28 +08:00
    我记得是删不掉的啊
    lovemegowin
        48
    lovemegowin  
       2020-01-07 09:24:30 +08:00
    我是直接重装系统了 很多 bin 下的文件删了 会有很多问题
    solgh
        49
    solgh  
       2020-01-07 09:44:57 +08:00
    不备份吗?
    solgh
        50
    solgh  
       2020-01-07 09:45:46 +08:00
    我至少一个月用移动硬盘备份一次
    beginor
        51
    beginor  
    OP
       2020-01-07 09:56:47 +08:00
    @solgh 自动备份没有打开, 看来以后还是要开的
    seki4713
        52
    seki4713  
       2020-01-07 09:58:50 +08:00
    我也试过一次 当初不小心创建了一个名字是~的文件 然后习惯性 rm -rf ~
    不过还好有用 time machine 备份 不然 gg
    melonzzz
        53
    melonzzz  
       2020-01-07 10:05:42 +08:00
    有一次帮同事装东西,一不小心就 rm -rf 了。然后东西都没了。。。也就要 sudo 权限的没删掉。还好我还活着
    ericzhizhengsg
        54
    ericzhizhengsg  
       2020-01-07 10:10:35 +08:00   ❤️ 1
    I think you did deliberately. It can not type in one key.
    VermouthcZzz
        55
    VermouthcZzz  
       2020-01-07 10:21:30 +08:00
    删前备份 江湖规矩 养成好习惯才是正道 alias 是治标不治本 ~~手动狗头
    xianqin
        56
    xianqin  
       2020-01-07 10:39:58 +08:00
    把 time machine 开着,那怕没备份关机前都可以找回来
    no1xsyzy
        57
    no1xsyzy  
       2020-01-07 10:55:48 +08:00   ❤️ 1
    再说一遍不要 alias rm
    不然你 ssh 到另一台上去就很放心的 rm 了
    no1xsyzy
        58
    no1xsyzy  
       2020-01-07 10:57:41 +08:00
    @fvckDaybyte2 #45 不是被 rm 无视的,shell 直接展开成 /home/xxx 的,rm 接受到的参数不是 ~
    lcj2class
        59
    lcj2class  
       2020-01-07 11:02:53 +08:00
    一直用的是 Emacs 编辑器,它有个 backup 功能,目前是把备份目录设置为 ~/.emacs/backups,这里面的文件,已经拯救我好多次了。
    其他编辑器应该有类似的功能。
    seenthewind
        60
    seenthewind  
       2020-01-07 11:09:28 +08:00
    我在 mac 上按错过,实际上,如果东西多的话,删的不快,反应过来赶紧疯狂 ctrl + C 终止。

    不管你信不信,我抢救回来过。。
    farmer01
        61
    farmer01  
       2020-01-07 11:10:20 +08:00
    收拾收拾行李买站票吧
    wangkun025
        62
    wangkun025  
       2020-01-07 11:14:29 +08:00
    安装了 trash
    未雨绸缪。
    shm7
        63
    shm7  
       2020-01-07 11:20:33 +08:00
    我记得书上讲过,rm 之前先 ls 一下,看好了,再把 ls 改成 rm
    030
        64
    030  
       2020-01-07 12:30:32 +08:00
    把硬盘挂载到 Windows 下看看能不能恢复,2020 年了,mac 的话,消费级文件系统应该删除操作都是删索引
    030
        65
    030  
       2020-01-07 12:33:50 +08:00
    # strace rm data.txt 2>&1 | grep 'data.txt'
    execve("/bin/rm", ["rm", "data.txt"], [/* 13 vars */]) = 0
    lstat("data.txt", {st_mode=S_IFREG|0644, st_size=10, ...}) = 0
    stat("data.txt", {st_mode=S_IFREG|0644, st_size=10, ...}) = 0
    access("data.txt", W_OK) = 0
    unlink("data.txt") = 0

    找了下,unlink,看来是了
    beginor
        66
    beginor  
    OP
       2020-01-07 12:48:00 +08:00
    @030 Mac 内置硬盘, 那样做太折腾了, 新建用户, 只当是全新电脑了
    foxni
        67
    foxni  
       2020-01-07 14:20:59 +08:00   ❤️ 1
    看到楼主的遭遇,默默的装上了 trash。。。
    Rorysky
        68
    Rorysky  
       2020-01-07 14:23:19 +08:00
    没记错,macos catalina 开始把 系统目录与用户目录,在逻辑上隔离开了。

    没事儿,使劲儿造
    lostberryzz
        69
    lostberryzz  
       2020-01-07 14:28:31 +08:00
    @Rorysky 系统删掉没关系,重装就行,用户数据删了找不回啊
    Ivone29
        70
    Ivone29  
       2020-01-07 14:32:57 +08:00
    @atonku 哈哈哈,我第一反应也是想到的这个
    hyndaniel
        71
    hyndaniel  
       2020-01-07 14:55:22 +08:00   ❤️ 1
    不要 alias
    maxbon
        72
    maxbon  
       2020-01-11 15:18:37 +08:00
    rm -rf ~/ 问题不大
    rm -rf / 问题很大
    bravist
        73
    bravist  
       2020-05-22 15:49:27 +08:00
    哎,就是被删了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3610 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 85ms · UTC 11:07 · PVG 19:07 · LAX 03:07 · JFK 06:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.