V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gullon
V2EX  ›  问与答

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

  •  
  •   gullon · 2013-07-16 14:02:03 +08:00 · 8232 次点击
    这是一个创建于 3929 天前的主题,其中的信息可能已经有所发展或是发生改变。
    常听到别人说不能用 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   ·   我们的愿景   ·   实用小工具   ·   3773 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:30 · PVG 18:30 · LAX 03:30 · JFK 06:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.