如何删除包含@的文件';命令行中svn的名称?

如何删除包含@的文件';命令行中svn的名称?,svn,Svn,有了新的iPhone 2x文件,我无意中发现了这个问题 您需要在末尾添加“@”符号,以使SVN处理该文件 例如,如果您有一个名为foo@2x.png要将其添加到SVN,请键入: svn add foo@2x.png@ 如果您有许多文件的名称中带有“@”符号,并且希望成批处理(即使用*通配符),则可以在OS X终端中执行类似操作: find . -name "*@*" | xargs -I % svn add %@ 上面的命令将使用find实用程序列出文件名中带有@的每个文件,然后使用XARG

有了新的iPhone 2x文件,我无意中发现了这个问题

您需要在末尾添加“@”符号,以使SVN处理该文件

例如,如果您有一个名为foo@2x.png要将其添加到SVN,请键入:

svn add foo@2x.png@
如果您有许多文件的名称中带有“@”符号,并且希望成批处理(即使用*通配符),则可以在OS X终端中执行类似操作:

find . -name "*@*" | xargs -I % svn add %@
上面的命令将使用find实用程序列出文件名中带有@的每个文件,然后使用XARGS将每个文件路径输送到SVN

对于每个文件路径,XARGS将执行提供的命令
svn add%@
,除了
-I%
告诉XARGS用管道传输的文件路径替换提供的命令中出现的每个“%”。XARGS有效地在文件名末尾附加了特殊的“@”

例如,在替换“%”字符后,XARGS将执行
svn add path/to/your/file@2x.png@
;SVN将接受这一点(可能是因为SVN查找“@”的最后一次出现,并将其视为修订说明符)


希望这能有所帮助-我不得不绞尽脑汁添加gazzilion@2x.png文件,这些文件是我的应用程序升级到iOS4.0所必需的

问题出在哪里?哪个组件拒绝文件名?你会犯什么错误?在什么平台上?这里有类似的问题:投票结束@Dmitry的建议当然,如果你想删除文件而不是添加它们,你只需要在上面的例子中用svn delete替换svn add,它应该可以工作。不错。但是似乎很奇怪-为什么在末尾添加“@”可以实现这一点?它在任何地方都有记录吗?非常奇怪,我在文件名
ubuntu@ec2-54-245-12-20.us-west-2.compute.amazonaws.com@
和svn delete起作用。@PaulD.Waite我假设它起作用,因为svn将字符串中的最后一个@作为修订说明符,因此,将一个添加到末尾会使其忽略上一个。解决方案在SVNBook中描述: