奇妙な名前のディレクトリを削除できない

奇妙な名前のディレクトリを削除できない

新しいフォルダを作成するときに、BASHでは ' が特殊文字であることに気づかなかったため、次のようなフォルダが作成されました。

One Flew Over the Cuckoos\ Nest\ \(1975\)?quit?quit()?ls??????????

正確に言うと

drwxrwxrwx    1 root     root             0 Mar  8 23:21 One Flew Over the Cuckoos\ Nest\ \(1975\)?quit?quit()?ls??????????

これによって私のターミナルはおかしくなってしまいました。タブ補完ではまったく見つかりません。inode 経由で開こうとするとエラーが発生します。

LibreELEC:/var/media/MYNAME/Films # rm -r "$(find -inum 187)"
rm: can't remove './One Flew Over the Cuckoos\ Nest\ \(1975\)
quit
quit()
ls': No such file or directory

どれくらいひどい失敗をしたのでしょうか?

答え1

解決しました。OP で試したように、inode 経由で削除することで解決しましたが、今度はファイル名を完全にバイパスする次の行を使用します。

find . -inum 187 -delete

これを読んでいる皆さん、187は、ls -li

答え2

rm の対話型オプションを使用できます。各ファイルがリストされ、削除するかどうかが尋ねられます。したがって、プレーン テストのビットのみをワイルドカードで指定できます。

rm -i *Flew*Cuckoo*Nest*

これは rmdir では機能しません。ディレクトリが空の場合は、次の操作を実行できます。

rm -ir *Flew*Cuckoo*Nest*

または、一意性を保つために十分に一致できる場合は、ディレクトリの名前を入力できる名前に変更することもできます。

mv *Flew*Cuckoo*Nest* BetterCuckooName

関連情報