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

rm -rf ~/a/b/c 时误删了文件怎么办?

  •  
  •   amoblin ·
    amoblin · 2014-05-15 16:19:57 +08:00 · 5551 次点击
    这是一个创建于 3824 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在输入路径时如果一不留神按了回车。。。 :(

    大家有木有因为这个命令误删文件(夹)的呢?

    一般如何避免呢?

    我能想到的一个方法:

    cd /a/b; rm -rf c

    不过感觉略嫌麻烦~
    24 条回复    2014-05-23 17:12:44 +08:00
    jokie
        2
    jokie  
       2014-05-15 17:03:46 +08:00
    等你误删了就不嫌麻烦了
    ChiangDi
        3
    ChiangDi  
       2014-05-15 17:07:45 +08:00 via Android
    蛋疼。。
    应该建个文件夹,不用的文件就扔进去,定时清理。
    solupro
        4
    solupro  
       2014-05-15 17:16:17 +08:00   ❤️ 2
    alias rm='mv --target-directory ~/.Trash'
    tonghuashuai
        5
    tonghuashuai  
       2014-05-15 17:32:39 +08:00
    4 楼正解
    reusFork
        6
    reusFork  
       2014-05-15 17:36:58 +08:00
    btrfs + snapshot,误删了也不怕
    jsonline
        7
    jsonline  
       2014-05-15 17:39:03 +08:00
    rm 后面永远不接 / 和 ~
    looly
        8
    looly  
       2014-05-15 17:45:23 +08:00
    http://www.xiaoleilu.com/linux-restore-file/
    我写的,前段时间刚经历过。
    skydiver
        9
    skydiver  
       2014-05-15 17:58:29 +08:00
    alias rm='rm -i'
    ivenvd
        10
    ivenvd  
       2014-05-15 18:36:10 +08:00
    赶紧喝口水压压惊。
    amoblin
        11
    amoblin  
    OP
       2014-05-15 18:57:19 +08:00
    @solupro 这个不错,但是参数怎么传给alias呢?
    @skydiver 删除文件夹时还是要加-f的,否则无尽的y和回车。。。
    @looly 不错,可惜Mac下木有~
    holy_sin
        12
    holy_sin  
       2014-05-15 20:06:32 +08:00
    git checkout -f如果可以的话
    artwalk
        13
    artwalk  
       2014-05-15 20:10:57 +08:00
    还好不是 rm -rf ~ /a/b/c
    lululau
        14
    lululau  
       2014-05-15 23:08:30 +08:00   ❤️ 1
    如果是 OS X 的话可以参考: http://alphahelical.com/code/osx/trash/vsrc
    pubby
        15
    pubby  
       2014-05-15 23:24:31 +08:00
    1. 磁盘最少mirror的
    2. 文件系统用支持snapshot的
    3. 代码用版本控制的
    4. 异地备份是最保险的

    基本上不会出大事故,而且恢复迅速
    lizheming
        16
    lizheming  
       2014-05-15 23:38:00 +08:00
    http://segmentfault.com/q/1010000000438405 身为SF用户应该先去SF上搜索一下啊..
    p.s.推荐那个Trash的方案。
    hanks315
        17
    hanks315  
       2014-05-16 09:59:17 +08:00
    mac下,mv对文件和目录的操作没有-r的区别,下面的别名,可以按照rm的习惯写,但执行的时候,选项被过滤掉了

    function __protect_rm {
    mv ${@: -1} ~/.Trash #取最后一个函数参数,也就是目标名
    }
    alias rm='__protect_rm'
    amoblin
        18
    amoblin  
    OP
       2014-05-16 10:19:02 +08:00
    @lizheming SF居然增加了模糊效果,还以为自己度数又上升了呢
    SF的cookie保存周期太短了,老让登陆 :(

    @hanks315 这个很简便易行,赞!
    lizheming
        19
    lizheming  
       2014-05-16 10:32:39 +08:00
    @amoblin (´Д`)为啥我一直都没有登陆过呢..甚至跨电脑跨系统好像都没有登陆过..不过那个模糊效果实在是好讨厌,我也不是很喜欢。
    amoblin
        20
    amoblin  
    OP
       2014-05-16 10:34:51 +08:00
    @lizheming 我是用Github登陆的,难道和这个有关?
    lizheming
        21
    lizheming  
       2014-05-16 10:49:59 +08:00
    @amoblin 他们说Github是保存一个月的,应该不会这么快吧...不过我之前用新浪微博登陆的,总是频繁要求登陆,后来我就怒了..自从用了SF自己的登陆后,登陆什么的再也不用烦恼了(´Д`)
    wizardoz
        22
    wizardoz  
       2014-05-16 11:48:18 +08:00
    先打路径,路径确认以后按C+a到行首打rm -fr。
    不过我一般不会直接用-fr参数,都是删除的时候提示错误,才会加上这个参数。
    gerorim
        23
    gerorim  
       2014-05-18 19:55:21 +08:00   ❤️ 1
    Install trash-cli

    $ sudo apt-get install trash-cli

    Put files in the trash with

    $ trash-put file1 file2

    alias rm='trash-put'
    amoblin
        24
    amoblin  
    OP
       2014-05-23 17:12:44 +08:00
    @gerorim mac下如何使用apt-get安装trash-cli呢?不过受此启发,brew search trash发现了好东西:rmtrash ---- rmtrash is a small utility that will move the file to OS X's Trash rather than obliterating the file (as rm does).

    貌似不错。很方便的解决了 :)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1071 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:41 · PVG 03:41 · LAX 12:41 · JFK 15:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.