這篇文章有點長,抱歉。簡短的版本是:我有一個無法刪除的目錄。當我嘗試與終端互動時,終端機給出“輸入/輸出錯誤”。我掃描了磁碟是否有錯誤,但沒有發現任何錯誤。問題的根源似乎是系統認為這是一個鏈接,但實際上它是一個目錄。我怎麼刪除它?
故事模式:我的桌面上有一個名為「media」的目錄,我透過 SSH (fuse/sshfs) 在其中安裝了另一個目錄。目錄開啟時連線遺失。 Finder 崩潰了,目錄從桌面上消失了。然而它仍然存在:
Desktop mike$ ls -1
media
templates
Desktop mike$ mkdir media
mkdir: media: File exists
幾乎我嘗試對目錄執行的所有操作都會出現“輸入/輸出”錯誤:
Desktop mike$ ls -i
ls: media: Input/output error
Desktop mike$ sudo rm -rf media
rm: media: Input/output error
Desktop mike$ sudo unlink media
unlink: media: Input/output error
Desktop mike$ sudo chmod 777 media
chmod: media: Input/output error
Desktop mike$ touch media
touch: media: Input/output error
cd ./media
cd: error retrieving current directory: getcwd: cannot access parent directories: Input/output error
如果我嘗試重新掛載遠端 SSH 目錄,也會得到相同的結果:
保險絲:錯誤的安裝點“./media/”:輸入/輸出錯誤
儘管它在桌面或 Finder 中不可見,但我可以搜尋並找到它。右鍵單擊搜尋結果不提供刪除選項—僅提供開啟和屬性。屬性顯示建立和修改時間(正確)以及空白圖示。我還可以選擇打開該項目,在這種情況下它會給我:
"The alias 'media' can't be opened because the original item can't be found. Delete, Fix, or OK."
當我嘗試刪除時,相同的對話框不斷彈出;選擇修復要求選擇要連結到的新項目。這樣做會報告:“未知錯誤-1407”,谷歌告訴我這意味著“需要一個資料夾,但得到一個文件”。
我可以移動目錄,但前提是我將其保留在桌面上:
Desktop mike$ mv ./media ./a
Desktop mike$ ls -i
ls: a: Input/output error
Desktop mike$ mv ./a ../
mv: cannot resolve a: /Users/mike/Desktop/a
我還能刪除這個嗎?或至少讓系統相信它是一個目錄而不是連結?
答案1
抱歉,解決這個問題後我沒有更新。我感謝所有知情答复。事實證明這是一件非常簡單的事。瀏覽 Linux 留言板,我發現這是透過 sshfs 掛載的已知問題。
https://bbs.archlinux.org/viewtopic.php?id=94725
我經歷了OP在該線程中描述的每個問題,加上Finder隱藏掛載點的問題(也許它無法統計它或其他東西,所以它只是不顯示它)。 “...嘗試存取斷開連接的 sshfs 共享的進程會進入不間斷睡眠狀態。”快速解決方法是停止 sshfs。 「killal sshfs」對我來說就足夠了。我想重新啟動也會起作用。
答案2
我剛剛遇到了同樣的問題。結果這目前被列為漏洞在 osxfuse 上。解決方法包括手動終止 sshfs 進程,然後卸載遠端目錄。之後您甚至可以刪除本地掛載點。