gullon
V2EX  ›  问与答

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

  •  
  •   gullon · Jul 16, 2013 · 9724 views
    This topic created in 4858 days ago, the information mentioned may be changed or developed.
    常听到别人说不能用 rm -rf 删除文件夹。
    那该怎么删?
    26 replies  •  1970-01-01 08:00:00 +08:00
    lhx2008
    lhx2008
    Jul 16, 2013❤️1
    1
    rm -rf /全路径 没什么问题
    或者先cd /全路径
    ls /全路径
    再rm -rf /全路径
    ijse
    ijse
    Jul 16, 2013❤️1
    2
    用 `rm -rfi xxx`

    确认下。。

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

    alias rm='rm -i'
    nil
    nil
    Jul 16, 2013❤️1
    3
    #!/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
    gullon
    OP
    Jul 16, 2013
    4
    @ijse
    主要就是用rm -r 在删除文件夹时,文件太多,难道每一个都要确认么?

    @nil 没写过ruby, 这代码是指把删除的文件放进Trash么?
    ijse
    ijse
    Jul 16, 2013
    5
    @gullon 确认是怕误操作。如果你确定没删错文件,`rm -rf ` 应该没什么关系吧。
    itommy
    itommy
    Jul 16, 2013
    6
    mv
    xingxiucun
    xingxiucun
    Jul 17, 2013
    8
    那天见有人说 rsync 什么的
    aisk
    aisk
    Jul 17, 2013
    9
    mv xx /tmp/
    luikore
    luikore
    Jul 17, 2013❤️2
    10
    alias cd='rm -rf'

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

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

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

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

    以后再用rm就会把文件移动到/recycle了,而且重名文件不会覆盖。。
    detailyang
    detailyang
    Jul 18, 2013
    25
    使用trash
    harryyyt
    harryyyt
    Jul 18, 2013
    26
    rsync -a --delete <空文件夹> <目标文件夹>
    据说在删除包含大量文件的文件夹时比rm -rf快
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1559 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 23:28 · PVG 07:28 · LAX 15:28 · JFK 18:28
    ♥ Do have faith in what you're doing.