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

2013-07-05 13:49:39 +08:00
 celon
试过各种工具,结果文件名全部被识别为参数了,难道这就是linux的死穴之一?
6090 次点击
所在节点    Linux
19 条回复
CoX
2013-07-05 13:51:47 +08:00
同级目录其他文件夹和文件复制出来,然后 rm -fr *
BOYPT
2013-07-05 13:52:08 +08:00
rmdir -- -p
wjchen
2013-07-05 13:52:58 +08:00
...
rm -r './-p/'
xzl
2013-07-05 13:54:09 +08:00
使用绝对路径 删除
mkdir '/home/xiaozhl/-p/'
rm -rf '/home/xiaozhl/-p/'
CoX
2013-07-05 13:54:32 +08:00
还是直接点吧 rm -fr ./-p
goool
2013-07-05 13:55:20 +08:00
celon
2013-07-05 13:58:46 +08:00
@CoX 这个很好用,多谢!
BOYPT
2013-07-05 14:10:11 +08:00
@celon 你应该记住用 ‘--’ 分隔标志参数和直接参数这个常识。到处通用。* 只不过是被你的shell自动识别成当前目录的所有文件并传作直接参数。
celon
2013-07-05 15:00:01 +08:00
@BOYPT 明白了,多谢
darasion
2013-07-05 15:10:17 +08:00
@BOYPT 的是正解.
bigeagle
2013-07-05 19:52:15 +08:00
用单引号禁止转义即可
sivacohan
2013-07-06 05:34:50 +08:00
@CoX
强迫症来了。
rm -rf 。。。
yuanz
2013-07-06 09:49:28 +08:00
@bigeagle 错解,单引号只是跳过了shell的通配符扩展等过程,将参数字面传递,跟lz的问题没关系.
yaroot
2013-07-06 11:07:30 +08:00
ls -i
find . -inum xxxxx -delete
lvye
2013-07-06 12:07:31 +08:00
这个不是死穴,以前还删过文件名乱码的
terry
2013-07-06 12:59:20 +08:00
有 inode Number 怎么会是死穴?
find /path/to -inum xxx -exec rm -i {} \;
或请随意组合。
lovejoy
2013-07-06 14:23:50 +08:00
rm -rf -- -p 请查阅man rm 最后几行
lovejoy
2013-07-06 14:25:41 +08:00
再附加一句,所以理论上建议shebang写#!/bin/sh -- 比较好,除了这个问题外,还可以防一下安全问题
yuankui
2013-07-07 02:04:36 +08:00
rm \-p 试试?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/74849

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX