我偶然在目录中创建了文件“ - ”(只是一个减号)并提交了它。 我必须删除它,因为在其他机器上其造成的错误: 的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