如何从svn中删除“ - ”文件?

时间:2010-05-28 12:29:51

标签: svn shell

无意中我在目录中创建了文件“ - ”(只是减号)并提交了它。 我必须删除它,因为它导致其他机器上的错误: svn:无法将字符串从'UTF-8'转换为本机编码: svn:?\ 226?\ 128?\ 147

我可以使用“rm -i *”或使用python“os.remove('\ xe2 \ x80 \ x93')”从本地目录中删除它,但这些方法不适用于“svn rm”。

如何从svn存储库中删除此类文件?

4 个答案:

答案 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}}