如何安全的删除软连接? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
k8ser
V2EX    Linux

如何安全的删除软连接?

  •  
  •   k8ser 2020-06-22 11:35:05 +0:00 8028 次点击
    这是一个创建于 2016 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如何安全的删除软连接? 一不小心就加了个 /

    30 条回复    2020-06-24 22:38:05 +08:00
    Latin
        1
    Latin  
       2020-06-22 11:58:42 +08:00   1
    rm -rf /
    MCVector
        2
    MCVector  
       2020-06-22 12:03:55 +08:00 via Android   8
    强烈建议不要发 rm -rf / 这样的东西。很容易误导通过搜索引擎过来的新手。我刚刚开始用 Linux 的时候有一次垃圾箱删不掉,看到一个论坛里有这样的命名,结果用了以后把作业都删掉了。
    vk42
        3
    vk42  
       2020-06-22 12:08:14 +08:00
    删软链接别加-r 就没事,最多报错
    visonnn
        4
    visonnn  
       2020-06-22 12:15:30 +08:00   1
    1 楼这种回复不好笑,也很不负责任。
    loading
        5
    loading  
       2020-06-22 12:16:54 +08:00 via Android   1
    root 权限了,不小心并不是理由。
    Netfix
        6
    Netfix  
       2020-06-22 12:20:05 +08:00   2
    看上面几楼好像是没看懂题目把,删除软连接后面+/ 会删除源文件 如果 tab 补全 默认会加 /
    libook
        7
    libook  
       2020-06-22 12:29:57 +08:00   1
    一方面是操作的时候仔细一些,确保输入的指令无误再执行;另一方面可以借助一些工具来确保可以恢复误操作,比如 trash-cli 这种工具可以使用 trash 指令来将文件放入回收站。
    McZoden
        8
    McZoden  
       2020-06-22 12:31:13 +08:00
    unlink
    eallion
        9
    eallion  
       2020-06-22 12:36:03 +08:00
    ln --help
    nightwitch
        10
    nightwitch  
       2020-06-22 12:48:28 +08:00   1
    apt instal trash-cli
    alias rm=trash
    liangch
        11
    liangch  
       2020-06-22 13:31:09 +08:00
    @Livid 1#恶意回复
    asilin
        12
    asilin  
       2020-06-22 13:31:32 +08:00
    unlink
    flyingghost
        13
    flyingghost  
       2020-06-22 14:02:24 +08:00
    @MCVector 那么问题来了,把一个低级错误像段子一样广为传播,到底是有利于新手避开错误,还是造成更多的人亦步亦趋掉进同样的坑里?
    Latin
        14
    Latin  
       2020-06-22 14:45:18 +08:00
    @liangch 你这是诋毁我哈,冷笑话不好笑就算了。好歹有点常识的也不会听风就是雨吧?
    wzxlovesy
        15
    wzxlovesy  
       2020-06-22 15:12:05 +08:00 via Android
    @Latin 在别人看来你这就是恶意回复,哪里是冷笑话
    syahd
        16
    syahd  
       2020-06-22 15:13:34 +08:00 via iPhone
    @Latin 呵呵,这种回复在 linux 吧是要封禁几天的
    Oysmart
        17
    Oysmart  
       2020-06-22 15:52:01 +08:00   1
    原来开过这种玩笑,但现在不会了,不要用自己的眼光去定义新手;
    新手往往会不假思索的去执行,对数据还是保持敬畏之心。
    CEBBCAT
        18
    CEBBCAT  
       2020-06-22 17:04:21 +08:00
    @Latin #14 好歹加个 doge
    crella
        19
    crella  
       2020-06-22 17:31:03 +08:00 via Android
    我用 debian9 的时候 rm -rf /这个危险命令会提示确认删除的了啊?
    zviacx
        20
    zviacx  
       2020-06-22 18:15:12 +08:00
    aloxaf
        21
    aloxaf  
       2020-06-22 19:06:24 +08:00
    1. 不要没事乱加 rf,你要删的又不是目录
    2. 标准做法是使用 unlink
    3. 为了防止误删建议 alias rm=rm -i
    4. 为了误删之后还能恢复请使用 trash-cli (这个太长我一般 alias 到 del )
    5. 如果你是像前面说的因为 tab 补全会加上 / 而误操作的花,建议使用 zsh 。zsh 很多细节真的处理得非常好:补全目录时自动添加的 / ,在侦测到你接下来输入的也是 / 或者分号、空格、回车时,就会被自动删掉。
    qnnnnez
        22
    qnnnnez  
       2020-06-22 19:46:14 +08:00
    3 楼说得没错呀。
    unlink 和 rm 没啥区别吧(我还不知道有个程序叫 unlink ),因为 unlink 不能加 -r ?
    HarryQu
        23
    HarryQu  
       2020-06-22 22:54:26 +08:00
    既然想安全,就尽量少用 rm 。你可以建一个临时目录,将想要删除的文件,使用 mv 移动到临时目录,定时清理临时目录即可。
    Illusionary
        24
    Illusionary  
       2020-06-22 23:14:29 +08:00
    rm -f,从未失手
    msg7086
        25
    msg7086  
       2020-06-23 07:38:45 +08:00
    软连接相当于文件,不需要加斜线啊。

    @Netfix 换个好点的 shell,不会乱加斜线的那种。

    @flyingghost 写上解释比光发一个命令更利于新手避开错误。
    Coolwinds
        26
    Coolwinds  
       2020-06-23 13:29:01 +08:00
    一楼真没意思,谁没有还是个菜鸟的时候
    vB4h3r2AS7wOYkY0
        27
    vB4h3r2AS7wOYkY0  
       2020-06-23 14:51:41 +08:00
    `fd <location> -type l`
    检查一下当前存在的软链再操作就好....
    qbqbqbqb
        28
    qbqbqbqb  
       2020-06-24 11:53:10 +08:00   1
    @qnnnnez Linux 里 rm 和 unlink 确实没多大区别
    有区别的是 macOS,因为 macOS 的文件系统支持目录硬链接(注意不是软链接,且系统中有相关机制确保目录“树”无环),众所周知 rm 和 rmdir 是无法直接删除有文件的目录的,如果要消除一个目录硬链接而不影响其中文件的话必须用 unlink 。
    至于软连接,无论在什么平台上都是直接 rm (不加-r )就行
    MCVector
        29
    MCVector  
       2020-06-24 13:16:27 +08:00 via Android
    @flyingghost 那就看有多少人是先接触段子了
    TK4E
        30
    TK4E  
       2020-06-24 22:38:05 +08:00
    以防万一

    alias rm='mv -t /root/.Rubbish'
    alias rmrf='\rm -rf /root/.Rubbish/*'

    现在 rm -rf / 也不能直接删除吧 反倒是要小心 rm -rf *
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1076 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 23:28 PVG 07:28 LAX 15:28 JFK 18:28
    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