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

覆盖了 osx 下 ls 命令怎么办?

  •  
  •   urmyfaith · 2014-10-29 12:35:05 +08:00 · 3427 次点击
    这是一个创建于 3657 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不小心用别的文件把
    /bin/ls 覆盖了,怎回复过来呢?

    求各位的大神!
    16 条回复    2014-12-04 18:11:31 +08:00
    fatestigma
        1
    fatestigma  
       2014-10-29 12:39:39 +08:00   ❤️ 1
    留邮箱,然后让别人给你发一个。你再覆盖回来就可以了。
    如果你之前有做过备份,从备份中拷贝一个也可以。
    013231
        2
    013231  
       2014-10-29 12:49:09 +08:00
    popbones
        3
    popbones  
       2014-10-29 14:32:13 +08:00   ❤️ 1
    按理说直接从Recovery HD里面拷贝一个出来应该就可以了吧
    popbones
        4
    popbones  
       2014-10-29 14:37:55 +08:00   ❤️ 1
    先挂载Recovery HD

    可以直接diskutil用命令。不会用命令的话需要先开启Disk Utility Debug菜单,命令好像是
    defaults write com.apple.DiskUtility DUDebugMenuEnabled 1
    然后打开Disk Utility,在Debug菜单选择列出所有分区,然后挂载Recovery HD

    之后在挂载Recover HD里面的com.apple.recovery.boot/BaseSystem.dmg

    在进入/Volumes/OS X Base System/bin/拷贝一份出来即可吧
    ptyfork
        5
    ptyfork  
       2014-10-29 14:42:27 +08:00   ❤️ 2
    @popbones 嗯, 确实是一样的文件。

    $ diskutil mount Recovery\ HD
    $ open /Volumes/Recovery\ HD/com.apple.recovery.boot/BaseSystem.dmg
    $ md5 /Volumes/OS\ X\ Base\ System/bin/ls
    MD5 (/Volumes/OS X Base System/bin/ls) = 33c72b9531677c467d2330c35e18fb5a
    $ md5 /bin/ls
    MD5 (/bin/ls) = 33c72b9531677c467d2330c35e18fb5a
    urmyfaith
        6
    urmyfaith  
    OP
       2014-10-29 16:07:18 +08:00
    @fatestigma 谢谢。
    urmyfaith
        7
    urmyfaith  
    OP
       2014-10-29 16:07:38 +08:00
    @013231 谢谢,不过链接好像打不开。
    urmyfaith
        8
    urmyfaith  
    OP
       2014-10-29 16:11:40 +08:00
    @popbones @ptyfork 谢谢你们两个,非常感谢。一个提供了思路,一个提供了具体的代码。非常感谢。
    bolasblack
        9
    bolasblack  
       2014-10-29 16:34:41 +08:00
    其实……你用 homebrew 装一个 GNU coreutils 也行……
    urmyfaith
        10
    urmyfaith  
    OP
       2014-10-29 16:44:15 +08:00
    贴上恢复的代码:


    https://gist.github.com/urmyfaith/f81c98fb1700f8237e28

    再次谢谢楼上各位的热心回答。
    chemzqm
        11
    chemzqm  
       2014-10-29 16:49:39 +08:00
    为了以防文件出什么问题,买个移动硬盘用 time machine 还是很方便的
    rcmerci
        12
    rcmerci  
       2014-10-29 18:49:24 +08:00
    自己写一个呗
    urmyfaith
        13
    urmyfaith  
    OP
       2014-10-29 21:16:33 +08:00
    @chemzqm 可以考虑。
    popbones
        14
    popbones  
       2014-10-29 23:09:26 +08:00
    @bolasblack 这个说的是,几年前,我为了一个什么命令特地装的GNU Coreutil,因为Darwin待的BSD版的一个命令没有GNU版的方便,不过现在怎么也想不起来当时是为了哪个命令的哪个参数了。
    jakwings
        15
    jakwings  
       2014-12-04 16:10:35 +08:00
    @popbones BSD 版的 mv 和 cp 很反人类,非要注意最后的斜杠有没有加的。
    popbones
        16
    popbones  
       2014-12-04 18:11:31 +08:00
    @jakwings 我后来想起来了,我当时好像是因为Mac的sed不支持不区分大小写匹配,特意装得GNU sed
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2851 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:33 · PVG 21:33 · LAX 06:33 · JFK 09:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.