V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
celon
V2EX  ›  Linux

bash中,怎么删除一个名字为"-p"的文件夹?

  •  
  •   celon · 2013-07-05 13:49:39 +08:00 · 5886 次点击
    这是一个创建于 3940 天前的主题,其中的信息可能已经有所发展或是发生改变。
    试过各种工具,结果文件名全部被识别为参数了,难道这就是linux的死穴之一?
    19 条回复    1970-01-01 08:00:00 +08:00
    CoX
        1
    CoX  
       2013-07-05 13:51:47 +08:00   ❤️ 1
    同级目录其他文件夹和文件复制出来,然后 rm -fr *
    BOYPT
        2
    BOYPT  
       2013-07-05 13:52:08 +08:00   ❤️ 3
    rmdir -- -p
    wjchen
        3
    wjchen  
       2013-07-05 13:52:58 +08:00   ❤️ 1
    ...
    rm -r './-p/'
    xzl
        4
    xzl  
       2013-07-05 13:54:09 +08:00   ❤️ 1
    使用绝对路径 删除
    mkdir '/home/xiaozhl/-p/'
    rm -rf '/home/xiaozhl/-p/'
    CoX
        5
    CoX  
       2013-07-05 13:54:32 +08:00   ❤️ 1
    还是直接点吧 rm -fr ./-p
    celon
        7
    celon  
    OP
       2013-07-05 13:58:46 +08:00
    @CoX 这个很好用,多谢!
    BOYPT
        8
    BOYPT  
       2013-07-05 14:10:11 +08:00   ❤️ 4
    @celon 你应该记住用 ‘--’ 分隔标志参数和直接参数这个常识。到处通用。* 只不过是被你的shell自动识别成当前目录的所有文件并传作直接参数。
    celon
        9
    celon  
    OP
       2013-07-05 15:00:01 +08:00
    @BOYPT 明白了,多谢
    darasion
        10
    darasion  
       2013-07-05 15:10:17 +08:00
    @BOYPT 的是正解.
    bigeagle
        11
    bigeagle  
       2013-07-05 19:52:15 +08:00
    用单引号禁止转义即可
    sivacohan
        12
    sivacohan  
       2013-07-06 05:34:50 +08:00 via Android
    @CoX
    强迫症来了。
    rm -rf 。。。
    yuanz
        13
    yuanz  
       2013-07-06 09:49:28 +08:00   ❤️ 1
    @bigeagle 错解,单引号只是跳过了shell的通配符扩展等过程,将参数字面传递,跟lz的问题没关系.
    yaroot
        14
    yaroot  
       2013-07-06 11:07:30 +08:00
    ls -i
    find . -inum xxxxx -delete
    lvye
        15
    lvye  
       2013-07-06 12:07:31 +08:00 via Android
    这个不是死穴,以前还删过文件名乱码的
    terry
        16
    terry  
       2013-07-06 12:59:20 +08:00 via Android
    有 inode Number 怎么会是死穴?
    find /path/to -inum xxx -exec rm -i {} \;
    或请随意组合。
    lovejoy
        17
    lovejoy  
       2013-07-06 14:23:50 +08:00
    rm -rf -- -p 请查阅man rm 最后几行
    lovejoy
        18
    lovejoy  
       2013-07-06 14:25:41 +08:00
    再附加一句,所以理论上建议shebang写#!/bin/sh -- 比较好,除了这个问题外,还可以防一下安全问题
    yuankui
        19
    yuankui  
       2013-07-07 02:04:36 +08:00 via iPad
    rm \-p 试试?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5347 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:02 · PVG 16:02 · LAX 01:02 · JFK 04:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.