我偶然在目錄中創建了文件「 - 」(只是一個減號)並提交了它。 我必須刪除它,因爲在其他機器上其造成的錯誤: 的svn:無法從 'UTF-8' 到本地編碼字符串轉換: 的svn:???\ 226 \ 128 \ 147如何從svn中刪除「 - 」文件?
我可以使用「rm -i *」或python「os.remove('\ xe2 \ x80 \ x93')」從本地目錄中刪除它,但這些方法不能與「svn rm」一起使用。
如何從svn倉庫中刪除這樣的文件?
我偶然在目錄中創建了文件「 - 」(只是一個減號)並提交了它。 我必須刪除它,因爲在其他機器上其造成的錯誤: 的svn:無法從 'UTF-8' 到本地編碼字符串轉換: 的svn:???\ 226 \ 128 \ 147如何從svn中刪除「 - 」文件?
我可以使用「rm -i *」或python「os.remove('\ xe2 \ x80 \ x93')」從本地目錄中刪除它,但這些方法不能與「svn rm」一起使用。
如何從svn倉庫中刪除這樣的文件?
你可以嘗試svn rm ./-
它可能不是實際上是負,壽」,而是一個尋找類似文字。
我記得在大學的我的linux課程中想出了這個答案。 – Malfist 2010-05-28 13:27:12
通常,您需要使用--
標記來終止命令行選項列表。
嘗試類似svn rm -- -
。
如果要從文件系統中刪除目錄,則相同:rm -r -- -
。
嘗試svn rm -- -
--
的意思是 「停止閱讀選項」。
在某些情況下(例如在控制檯),您可能無法複製/粘貼奇數字符。在這種情況下,你可以使用文件通配符。在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]
您嘗試過'svn rm - - '還是'LC_ALL = C svn rm - - '? – Rudi 2010-05-28 12:34:38
所以它沒有減,雖然它看起來幾乎完全一樣。我從「ls」複製粘貼它並用「svn rm - - 」刪除它。感謝您提供快速解答。 – askonecki 2010-05-28 12:43:59