技术解析

bash中,怎么删除一个名字为"-p"的文件夹?
0
2021-07-22 15:44:50
idczone
试过各种工具,结果文件名全部被识别为参数了,难道这就是linux的死穴之一?
同级目录其他文件夹和文件复制出来,然后 rm -fr *

rmdir -- -p

...
rm -r './-p/'

使用绝对路径 删除
mkdir '/home/xiaozhl/-p/'
rm -rf '/home/xiaozhl/-p/'

还是直接点吧 rm -fr ./-p

http://linux.byexamples.com/archives/171/remove-file-start-with-special-character/

这个很好用,多谢!

你应该记住用 ‘--’ 分隔标志参数和直接参数这个常识。到处通用。* 只不过是被你的shell自动识别成当前目录的所有文件并传作直接参数。

明白了,多谢

的是正解.

用单引号禁止转义即可


强迫症来了。
rm -rf 。。。

错解,单引号只是跳过了shell的通配符扩展等过程,将参数字面传递,跟lz的问题没关系.

ls -i
find . -inum xxxxx -delete

这个不是死穴,以前还删过文件名乱码的

有 inode Number 怎么会是死穴?
find /path/to -inum xxx -exec rm -i {} \;
或请随意组合。

rm -rf -- -p 请查阅man rm 最后几行

再附加一句,所以理论上建议shebang写-- 比较好,除了这个问题外,还可以防一下安全问题

rm \-p 试试?

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服