無法刪除名稱奇怪的目錄

無法刪除名稱奇怪的目錄

在創建新資料夾時,我沒有意識到在 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

相關內容