2014-03-06 23 views
0

我有一個遠程Linode,我正在使用Cygwin進行訪問。一個錯誤的數據庫文件,特別是「C:\ Users \ Blah \ Blah \ website \ blah \ sqlite.db」被創建。該文件用於Windows機器上的本地測試,但是由於Linode上的錯誤而生成。請注意,這是Linode內的完整文件名稱,而不是它的位置。這是Windows語法,不是Unix,這是我認爲問題所在的地方。在Unix上刪除「C: Blah Blah .. ... Blah」文件

現在,我無法刪除它!它說,無法刪除文件「文件名」,其中文件名沒有任何原始反斜槓。這告訴我它不能識別這是一個錯誤的Windows DB文件。

我該如何刪除?如果我有權訪問GUI文件夾,我可以使用它,但我只有命令行!

請幫忙!

+0

您是否嘗試使用雙反斜槓? 'rm C \:\\ Users \\ Blah \\ Blah \\ website \\ blah \\ sqlite.db'(我也建議如圖所示轉義冒號)。反斜槓對Unix shell有特殊的含義,必須轉義才能被正確使用。 – lurker

+0

用\\替換\。另外,試試看Tab鍵 – rpax

回答

0

反斜槓和冒號不是文件系統的特殊字符(這就是爲什麼你可以在文件名中包含這些字符的文件),但反斜槓是shell的特殊字符(並且:在某些情況下是特殊的) 。

您只需將文件名稱傳遞給rm命令即可。要從shell執行此操作,您需要轉義反斜槓字符。

這應該工作:

rm C:\\Users\\Blah\\Blah\\website\\blahsqlite.db 

例如(我只是嘗試這樣做我自己的系統上):

$ touch C:\\Users\\Blah\\Blah\\website\\blahsqlite.db 
$ ls 
C:\Users\Blah\Blah\website\blahsqlite.db 
$ rm C:\\Users\\Blah\\Blah\\website\\blahsqlite.db 
$ 

如果你的shell支持選項卡完成,那麼你可能只需要輸入rm C選項卡 並且,如果當前目錄中沒有其他文件的名稱以C開頭,那麼shell會將其擴展爲(轉義版本)文件名。 (Bash碰巧也在:之前插入了一個\;這是不必要的,但是無害)。

+0

太棒了!謝謝 :) –

相關問題