如何从命令行中的svn中删除名称为@的文件?

CiN*_*iNN 17 svn

有了新的iPhone 2x文件,我偶然发现了这个问题......

bha*_*inb 50

您需要在最后添加一个"@"符号以获取SVN来处理该文件.

例如,如果您要将一个名为foo@2x.png的文件添加到SVN,则应键入:

svn add foo@2x.png@
Run Code Online (Sandbox Code Playgroud)

如果你想在批处理中使用名称中带有"@"符号的文件(即使用*通配符),则可以在OS X终端中执行以下操作:

find . -name "*@*" | xargs -I % svn add %@
Run Code Online (Sandbox Code Playgroud)

上面的命令将使用find实用程序在文件名中列出每个文件的@,然后 使用XARGS 将每个文件路径传递给SVN.

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

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

希望这会有所帮助 - 我不得不重新添加我的应用程序升级为iOS4.0所需的gazzilion @ 2x.png文件

  • 当然,如果你想删除文件而不是添加文件,你只需要在上面的例子中用svn delete替换svn add,它应该可以工作. (2认同)
  • @PaulD.Waite我认为它有效,因为SVN将字符串中的最后一个@视为修订说明符,因此在结尾添加一个使得它忽略前一个. (2认同)