如何删除"-&引用;来自svn的文件?

如何删除"-&引用;来自svn的文件?,svn,shell,Svn,Shell,我无意中在目录中创建了文件“-”(只是一个负号),并提交了它。 我必须删除它,因为它会在其他计算机上导致错误: svn:无法将字符串从“UTF-8”转换为本机编码: svn:?\226?\128?\147 我可以使用“rm-I*”或python“os.remove('\xe2\x80\x93')”将其从本地目录中删除,但这些方法不适用于“svn-rm” 如何从svn存储库中删除此类文件?您可以尝试svn rm./- 它实际上可能不是一个负号,tho',而是一个类似的字符。通常,您需要使用--标记

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

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


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

您可以尝试
svn rm./-


它实际上可能不是一个负号,tho',而是一个类似的字符。

通常,您需要使用
--
标记终止命令行选项列表

尝试类似于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”结尾:


你试过“svn rm--”或“LC_ALL=C svn rm--”吗?所以它不是负的,尽管看起来几乎完全一样。我从“ls”复制粘贴了它,并用“svn rm--”删除了它。谢谢你们的快速回答。我记得我在大学的linux课上不得不提出这个答案。
rm [^msy]?[19]