无意中我在目录中创建了文件“ - ”(只是减号)并提交了它。 我必须删除它,因为它导致其他机器上的错误: svn:无法将字符串从'UTF-8'转换为本机编码: svn:?\ 226?\ 128?\ 147
我可以使用“rm -i *”或使用python“os.remove('\ xe2 \ x80 \ x93')”从本地目录中删除它,但这些方法不适用于“svn rm”。
如何从svn存储库中删除此类文件?
答案 0 :(得分:8)
通常,您需要使用--
标记来终止命令行选项列表。
尝试类似svn rm -- -
的内容。
如果要从文件系统中删除目录,请执行以下操作:rm -r -- -
。
答案 1 :(得分:5)
您可以尝试svn rm ./-
它实际上可能不是一个减号,但是看起来很像一个字符。
答案 2 :(得分:2)
尝试svn rm -- -
--
表示“停止阅读选项”。
答案 3 :(得分:1)
在某些情况下(例如在控制台),您可能无法复制/粘贴奇怪的字符。在这种情况下,您可以使用文件globbing。最好在ls
之前rm
进行ls -l ?
rm ?
,以确保您没有在删除中包含要保留的内容。
任何单字符文件名:
ls -l [^a-zA-Z0-9-]
rm [^a-zA-Z0-9-]
或者,任何不是字母数字字符或连字符的单字符文件名:
ls -l [^[:alnum:]-]
rm [^[:alnum:]-]
另一个版本(区域设置感知)是:
rm [^msy]?[19]
除了更多的通配符和特定字符外,您还可以组合其他字符和类列表。
删除任何三字符名称不以“m”,“s”或“y”开头,任何第二个字符,以“1”或“9”结尾的文件:
{{1}}