2010-05-28 151 views
5

我偶然在目錄中創建了文件「 - 」(只是一個減號)並提交了它。 我必須刪除它,因爲在其他機器上其造成的錯誤: 的svn:無法從 'UTF-8' 到本地編碼字符串轉換: 的svn:???\ 226 \ 128 \ 147如何從svn中刪除「 - 」文件?

我可以使用「rm -i *」或python「os.remove('\ xe2 \ x80 \ x93')」從本地目錄中刪除它,但這些方法不能與「svn rm」一起使用。

如何從svn倉庫中刪除這樣的文件?

+0

您嘗試過'svn rm - - '還是'LC_ALL = C svn rm - - '? – Rudi 2010-05-28 12:34:38

+0

所以它沒有減,雖然它看起來幾乎完全一樣。我從「ls」複製粘貼它並用「svn rm - - 」刪除它。感謝您提供快速解答。 – askonecki 2010-05-28 12:43:59

回答

5

你可以嘗試svn rm ./-

它可能不是實際上是負,壽」,而是一個尋找類似文字。

+0

我記得在大學的我的linux課程中想出了這個答案。 – Malfist 2010-05-28 13:27:12

8

通常,您需要使用--標記來終止命令行選項列表。

嘗試類似svn rm -- -

如果要從文件系統中刪除目錄,則相同:rm -r -- -

2

嘗試svn rm -- -

--的意思是 「停止閱讀選項」。

1

在某些情況下(例如在控制檯),您可能無法複製/粘貼奇數字符。在這種情況下,你可以使用文件通配符。在rm之前執行ls是一個好主意,以確保您不想在刪除中包含要保留的內容。

任何單個字符的文件名:

ls -l ? 
rm ? 

,或者任何單個字符的文件名,這不是一個字母數字字符或連字符:將

ls -l [^a-zA-Z0-9-] 
rm [^a-zA-Z0-9-] 

的另一個版本(區域識別)成爲:

ls -l [^[:alnum:]-] 
rm [^[:alnum:]-] 

您可以結合其他字符和類的列表另外以更加通用和特定的角色。

刪除與不與「M」,「S」或「y」啓動一個三字符名稱的任何文件,具有任何第二字符,並用「1」或「9」結束:

rm [^msy]?[19]