新しいフォルダを作成するときに、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