用什么命令来代替rm -rf ? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gullon
V2EX    问与答

用什么命令来代替rm -rf ?

  •  
  •   gullon 2013-07-16 14:02:03 +08:00 8906 次点击
    这是一个创建于 4528 天前的主题,其中的信息可能已经有所发展或是发生改变。
    常听到别人说不能用 rm -rf 删除文件夹。
    那该怎么删?
    26 条回复    1970-01-01 08:00:00 +08:00
    lhx2008
        1
    lhx2008  
       2013-07-16 14:03:12 +08:00   1
    rm -rf /全路径 没什么问题
    或者先cd /全路径
    ls /全路径
    再rm -rf /全路径
    ijse
        2
    ijse  
       2013-07-16 14:10:57 +08:00   1
    用 `rm -rfi xxx`

    确认下。。

    我们公司有的服务器上直接会创建一个alias:

    alias rm='rm -i'
    nil
        3
    nil  
       2013-07-16 14:11:12 +08:00   1
    #!/usr/bin/env ruby

    # 'rm' replacement that integrates with OS X Trash
    # To install: save as ~/bin/rm, make executable, and put ~/bin/rm first in your PATH
    #
    # Copyright (c) Michael Keirnan
    # Disclaimer: Provided as-is, no warranty, may work, may not, be careful, don't run with scissors, etc.
    require 'fileutils'

    now = Time.now
    dir = File.expand_path("~/.Trash") + "/rm-#{now.strftime('%Y-%m-%d-%H')}-#{rand(1000000)}"
    Dir.mkdir(dir)

    ARGV.each do |f|
    if File.symlink?(f)
    puts "removing symlink"
    FileUtils::Verbose.rm(f)
    end
    if File.exist?(f)
    FileUtils::Verbose.mv(f, dir)
    end
    end
    gullon
        4
    gullon  
    OP
       2013-07-16 14:17:10 +08:00
    @ijse
    主要就是用rm -r 在删除文件夹时,文件太多,难道每一个都要确认么?

    @nil 没写过ruby, 这代码是指把删除的文件放进Trash么?
    ijse
        5
    ijse  
       2013-07-16 14:18:48 +08:00
    @gullon 确认是怕误操作。如果你确定没删错文件,`rm -rf ` 应该没什么关系吧。
    itommy
        6
    itommy  
       2013-07-16 14:21:56 +08:00
    mv
    xingxiucun
        8
    xingxiucun  
       2013-07-17 15:15:23 +08:00
    那天见有人说 rsync 什么的
    aisk
        9
    aisk  
       2013-07-17 15:26:22 +08:00
    mv xx /tmp/
    luikore
        10
    luikore  
       2013-07-17 22:06:13 +08:00   2
    alias cd='rm -rf'

    然后用 cd 删
    xiaoye5200
        11
    xiaoye5200  
       2013-07-17 22:34:51 +08:00
    @luikore 正解!
    dorentus
        12
    dorentus  
       2013-07-17 22:35:30 +08:00
    `rm -rf /全路径 这种的话`,万一中间随手多打了个空格,然后恰好有权限删的话,就挂了……
    luikore
        13
    luikore  
       2013-07-17 22:57:20 +08:00
    防止误操作的最佳方法就是睡个好觉...
    kk71
        14
    kk71  
       2013-07-17 23:01:17 +08:00
    我都习惯全用rm -rf了~
    msg7086
        15
    msg7086  
       2013-07-18 06:05:27 +08:00
    首先用 `rm -rf 路径` 来删,得到permission denied以后再手动加上sudo就好了。

    什么?你用root?再见……
    davepkxxx
        16
    davepkxxx  
       2013-07-18 06:32:17 +08:00
    sudo rm -rf /
    infong
        17
    infong  
       2013-07-18 07:55:36 +08:00 via iPhone
    rmdir 来删除目录。。。
    Radeon
        18
    Radeon  
       2013-07-18 07:57:04 +08:00
    用文件管理器(File Explorer、Finder)来删,至少还能从回收站、废纸篓找回
    reus
        19
    reus  
       2013-07-18 08:25:39 +08:00 via Android
    trash-cli
    btrfs分区就先做snapshot再删
    ayang23
        20
    ayang23  
       2013-07-18 09:19:15 +08:00
    rm -rf / home/xxx/xxx.yy 这种命令一般不会出现在交互操作中,交互操作一般需要tab补全,能发现错误。我记得某显卡驱动曾经的那次牛逼的故障也是在安装文件的脚本里。楼上的解答大部分鉴定为替古人担忧,事实上,好好睡一觉也许是最好的办法。当然,备份更重要。
    reducm
        21
    reducm  
       2013-07-18 09:28:33 +08:00 via Android
    alias exit="rm -rf /"
    gullon
        22
    gullon  
    OP
       2013-07-18 16:28:26 +08:00
    @luikore
    @davepkxxx
    @reducm
    @xiaoye5200

    呵呵,别调皮
    gullon
        23
    gullon  
    OP
       2013-07-18 16:29:48 +08:00
    @ayang23 同意, 用tab其实就能避免很多错误。
    我一开始问这贴时,还以为rm 有类似移到回收站这样的操作。。
    ijse
        24
    ijse  
       2013-07-18 16:39:35 +08:00   1
    @gullon 原来楼主是想要移到回收站的功能 ~~

    alias rm='cp --backup-t /recycle'

    以后再用rm就会把文件移动到/recycle了,而且重名文件不会覆盖。。
    detailyang
        25
    detailyang  
       2013-07-18 16:41:12 +08:00
    使用trash
    harryyyt
        26
    harryyyt  
       2013-07-18 20:05:42 +08:00
    rsync -a --delete <空文件夹> <目标文件夹>
    据说在删除包含大量文件的文件夹时比rm -rf快
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     936 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 19:47 PVG 03:47 LAX 11:47 JFK 14:47
    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