再也不用被 rm * 困扰了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
victor
V2EX    程序员

再也不用被 rm * 困扰了

  •  1
     
      victor 2015-04-16 12:56:28 +08:00 8055 次点击
    这是一个创建于 3835 天前的主题,其中的信息可能已经有所发展或是发生改变。

    从 V2EX 上搜索 rm。各种帖子内容都是叙述闻者伤心,听者流泪的手贱操作。

    今天看 https://www.youtube.com/user/wesbos/playlists 的 Command Line Power User 系列最后一讲发现了个好玩的东西。

    trash
    https://github.com/sindresorhus/trash

    还不知道的兄弟们可以快去试试了。这是一个跨平台的命令行工具,用来替代 rm。它会把文件删除到回收站的位置,给你一个拯救自己的机会。

    30 条回复    2015-04-17 09:27:06 +08:00
    GhostFlying
        1
    GhostFlying  
       2015-04-16 13:07:50 +08:00
    手贱的时候都是删掉了还清掉回收站的,包括我用zsh的时候多提示依次还是y了。。
    7anshuai
        2
    7anshuai  
       2015-04-16 13:08:06 +08:00
    赞,作者好像是JS社区的大牛
    liupy525
        3
    liupy525  
       2015-04-16 13:27:45 +08:00   3
    一直在用这个 也很不错 https://gitcafe.com/bachue/rm-trash
    zix
        4
    zix  
       2015-04-16 13:30:12 +08:00
    自从手滑删掉未提交的代码后,就自己动手写了一个……
    Dk2014
        5
    Dk2014  
       2015-04-16 13:31:56 +08:00 via Android
    曾经rm -rf ~过,当时那酸爽
    run2
        6
    run2  
       2015-04-16 13:44:04 +08:00
    [sudo] pip install trash-cli

    感觉比node版本好些
    jokester
        7
    jokester  
       2015-04-16 13:48:34 +08:00   1
    改变rm的行为也不是个办法

    被rm咬了几次后,往往会想到用”rm -i”替换rm,或整个替换掉rm,把所有被删除的文
    件放到~/.deleted目录中。这些小技巧让用户有了错误的安全感。


    Date: Mon,16 Apr 90 18:46:33 199
    X-Virus: 6
    From: Phil Agre <[email protected]>
    To: UNIX-HATERS
    Subject: deletion

    在我们的系统上,”rm”并不真正删除文件,而是给文件换了名,这样”undelete”(不
    是unrm)这样的工具就能恢复被删的文件。

    这个功能让我不再对删除文件多加小心,反正删掉了也能找回来。可是,我错了。Emacs
    中的删除并不支持这个功能,Dired命令也是如此。这当然是因为文件恢复并不是操作系
    统的一个功能。

    所以,现在我脑子里有两个概念,一个是”deleting”一个文件,一个是”rm’ing”一
    个文件。当我的手要我的脑子删除一个文件时,我总要把这两个概念区分一遍。


    一些UNIX专家由此得出了荒谬的结论,他们认为最好别把rm搞得更友好。他们争辩说,
    让UNIX更友好的努力往往适得其反。不幸的是,他们是对的。

    -------- unix hater handbook
    lululau
        8
    lululau  
       2015-04-16 13:49:24 +08:00
    OS X 上最好用的 Trash CLI util 是 http://alphahelical.com/code/osx/trash/vsrc
    它是调用的 Finder 去完成 trash 功能的,好处是可以使用 Finder 里的 “放回原处”功能
    yjd
        9
    yjd  
       2015-04-16 13:50:55 +08:00
    完全就个人问题,我从05年用到现在就没打错过。
    就比如ghost一样。从接触电脑到现在就没误恢复过。
    Tiande
        10
    Tiande  
    PRO
       2015-04-16 13:55:10 +08:00
    已 star ;)
    run2
        11
    run2  
       2015-04-16 13:57:42 +08:00   1
    @liupy525 的这个https://gitcafe.com/bachue/rm-trash 也可以用废纸篓的放回原处
    janxin
        12
    janxin  
       2015-04-16 14:06:07 +08:00
    手贱还是我这种 rm -rf的
    zenozeng
        13
    zenozeng  
       2015-04-16 14:06:47 +08:00
    @jokester (setq delete-by-moving-to-trash t)
    neilwong
        14
    neilwong  
       2015-04-16 14:19:54 +08:00
    @janxin 我都是rm -rvf 删除的时候还可以看到过程~
    anyforever
        15
    anyforever  
       2015-04-16 14:41:41 +08:00   1
    @neilwong 自虐的最高境界。
    Tonni
        16
    Tonni  
       2015-04-16 14:50:06 +08:00
    有一次在 HOME 执行 rm -rf *,然后立即取消操作,删除了几个应用,还好有 TM 做过备份。
    loveyu
        17
    loveyu  
       2015-04-16 15:26:00 +08:00
    有一次不小心把根目录链接到某个目录。然后 rm -rf *。还好书虚拟机
    faninx
        18
    faninx  
       2015-04-16 15:32:13 +08:00
    rm -rf 已成习惯 。。
    rming
        19
    rming  
       2015-04-16 15:38:11 +08:00
    alias rm='rm -i'

    其实自从用了 Mac ,再也不用担心手贱了,有TM保护很安心
    mcfog
        20
    mcfog  
       2015-04-16 15:55:12 +08:00
    @jokester +65535

    实名反对任何改变rm行为的做法

    改变rm行为的脚本大概是这样的:某年某月在自己机器rimraf哭一次,一遍抹眼泪一边找个trash,alias成rm以后继续开心地rm。过一阵子以后,跑到服务器上或者su到另一个用户或者写个脚本 又rimraf一记,cheers

    不过不改变行为,换个名字专门trash是不错的,我用的是`brew install rmtrash`
    loveminds
        21
    loveminds  
       2015-04-16 16:09:53 +08:00
    除非你有能力改变默认源里的rm,否则习惯这种东西无异于饮鸩止渴,当换到其他机器上的时候会下意识的以为rm仍然是trashed的,如@mcfog 所述
    jason52
        22
    jason52  
       2015-04-16 16:22:55 +08:00
    我在有一本书里看到是,作者说道 ,我们先等等,让mac用户镇定一下情绪~~
    zhengkai
        23
    zhengkai  
       2015-04-16 17:31:49 +08:00
    比 rm 更为普遍和严重的问题是用 root 账号而不是 sudo
    colorfulberry
        24
    colorfulberry  
       2015-04-16 17:55:21 +08:00
    rm -rf 一次换过一次工作的说!@playtoxin
    konakona
        25
    konakona  
       2015-04-16 18:38:42 +08:00
    - - 这种命令明明打完后就应该停顿10秒看清楚……
    Shieffan
        26
    Shieffan  
       2015-04-16 18:47:53 +08:00
    两次以上在~来rm -rf *
    ryd994
        27
    ryd994  
       2015-04-16 22:48:13 +08:00 via Android
    alias rm=true
    彻底根治
    h4x3rotab
        28
    h4x3rotab  
       2015-04-16 23:43:58 +08:00
    mac党。我的做法就是该删就删,开time machine增量备份,删坏了去找回来..
    z327774948
        29
    z327774948  
       2015-04-17 08:46:14 +08:00
    想起自己手贱的那次了
    wwek
        30
    wwek  
       2015-04-17 09:27:06 +08:00
    先pwd
    然后rm -rf 看清楚了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1070 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 23:12 PVG 07:12 LAX 16:12 JFK 19:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86