如何在Linux上删除具有此名称的文件:-] ??????? q [duplicate]


14

-]???????q在我的终端上以某种方式创建了一个名为的文件。我尝试了rm -f“-] ??????? q”(双引号),但是没有被删除。(错误::) rm: invalid option -- ]。如何删除?


我有类似的问题,就我而言,问题出在samba实现上,只是尝试ssh到服务器,然后将其删除
Buksy 2016年

Answers:


26

例如,使用:

rm -- '-]???????q'

其中的--意思是:“停止解析选项”。


确实,我遇到了一个什至没有想到的类似问题-做个开关。我发誓我花了大约2个小时来解决这个问题。
Jeff F.

许多应用程序使用--getopt功能,猜测它是一种事实上的标准。
cYrus

13

您可以将文件名与rm一起使用,也可以将inode编号与find一起使用:

rm -- -]???????q
# or
  -> ls -i                                                                                                                         
47984689 blah.ui  47983771 __init__.py  
47983773 testpy.e4p  47985161 Ui_blah.py

  -> find -inum 47983773                                                                                                           
./testpy.e4p

  -> find -maxdepth 1 -inum 47983773 -exec rm -i '{}' \;
#or
  -> find -maxdepth 1 -inum 47983773 -delete

添加-maxdepth 1,否则find将遍历所有子目录:find -maxdepth 1 -inum 47983773 -delete
Fabian Ritzmann '16

@FabianRitzmann好电话,我加了。
OneOfOne

1
这应该是选择的答案。唯一正确的方法是通过iNode访问名称中包含无效字符的文件。
ScumCoder

1
rm ./"-]???????q"

双引号可防止外壳扩展询问标记。例如,如果您有另一个名为-] foobar.q的文件:

$ touch ./"-]???????q" ./-]foobar.q
$ echo ./-]???????q
./-]foobar.q ./-]???????q

哦。我加上了引号,但是却错过了./
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.