无法删除名称奇怪的目录

无法删除名称奇怪的目录

在创建新文件夹时,我没有意识到在 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中尝试过的那样,但现在使用以下行完全绕过文件名:

find . -inum 187 -delete

对于阅读本文的任何人来说,187 应该替换为通过以下方式找到的 inodeLS-李

答案2

您可以使用 rm 中的交互选项。它将列出每个文件并询问您是否要删除它。因此,您可以仅使用通配符来简单测试:

rm -i *Flew*Cuckoo*Nest*

这对 rmdir 不起作用。如果目录为空,您可以:

rm -ir *Flew*Cuckoo*Nest*

或者,您可以将目录重命名为您可以键入的内容,前提是您可以匹配足够的目录以确保唯一性:

mv *Flew*Cuckoo*Nest* BetterCuckooName

相关内容