Linuxでこの名前のファイルを削除する方法:-] ??????? q [duplicate]


14

どういうわけかという名前のファイル-]???????qが私の端末で作成されました。rm -f "-] ??????? q"(二重引用符)を試しましたが、削除されませんでした。(エラー::) rm: invalid option -- ]。どうすれば削除できますか?


私は同様の問題を抱えていました。私の場合、問題はsambaの実装にあり、サーバーにsshしてから削除しようとしました
-Buksy

回答:


26

たとえば、次の場合:

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

ここで、--「解析オプションの停止」を意味します。


確かに、私も考えていない-スイッチであることと同様の問題に遭遇しました。私はそれを理解しようとして2時間ほど費やしたと誓います。
ジェフF.

多くのアプリケーションはを使用しますが--、これはgetopt関数による一種の事実上の標準だと思います。
cYrus

13

rmでファイル名を使用するか、findでiノード番号を使用できます。

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

@FabianRitzmannいいですね、追加しました。
OneOfOne

1
これが選択された答えです。iNodeによって名前に無効な文字が含まれるファイルにアクセスすることが唯一の正しい方法です。
ScumCoder

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

二重引用符は、シェルが質問マークを展開するのを防ぎます。たとえば、-] foobar.qという別のファイルがある場合:

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

ああ。引用符を付けましたが、欠落していました./
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.