
我創建了一個名為\;:$"\'
測試我的軟體的檔案。我最終遇到了錯誤,因為我無法刪除檔案屬性。我試圖找到一個精確的字元組合來通過 刪除它rm
,但我找不到方法。
rm \\;:$\"\\\'
rm: cannot remove `\\': No such file or directory
rm "\\"\;:$\"\\\'
rm: cannot remove `\\;:$"\\\'': No such file or directory
rm '\;:$"\'''
rm: cannot remove `\\;:$"\\': No such file or directory
(最後一次嘗試殺了我)
還有許多其他嘗試。需要伸出援手!
答案1
如果檔案名稱正是\;:$"\'
,那麼您應該能夠使用以下命令刪除它:
rm \\\;\:\$\"\\\'
只要用一個 轉義所有字元即可\
。
答案2
您可以嘗試ls -li
在包含該文件的目錄中刪除該文件,並透過發出命令返回 inodefind . -inum <inode-number> -exec rm -i {} \;
我-i
在 find 命令中新增了 ,以便在刪除之前進行提示,以防 find 命令找到超出您預期的另一個檔案。
除了評論之外,我還嘗試自己建立和刪除該文件:
ls -l
total 0
-rw-r--r-- 1 test test 0 mrt 24 14:11 \;:$"\'
[test@testhost +1] /tmp/ff$ rm \\\;\:\$\"\\\'
[test@testhost +1] /tmp/ff$ ls -l
total 0
答案3
您可以使用單引號,然後您只需擔心引用單引號本身。
rm '\;:$"\'\'
在互動式使用中,您可以簡單地使用製表符補全,以'\
或開頭\\
。從'\
產量中完成製表符'\;:$"\'\'''
,因為 bash 只是用 替換每個嵌入的單引號'\''
。從無或從\\
Yield進行 Tab 補全\\\;\:\$\"\\\'
。
答案4
如果您不限於使用 bash 或其他 shell 腳本環境,刪除此類檔案的簡單方法可能是編寫一個簡短的程序,僅用unlink()
您最喜歡的語言進行調用,或者使用檔案管理器,例如 Gnome Commander 或 Midnight指揮官手動刪除該檔案。後一個選項可讓您選擇有問題的檔案並將其刪除,而無需在任何地方輸入檔案名,這將消除元字元具有任何特殊含義的可能性。