3

我的当前工作副本中有一个已在本地修改的文件列表。大约有 50 个文件已更改。

我可以通过这样做获得这些文件的列表:

svn st | ack '^M'

有没有办法可以将这些文件复制到另一个目录中,并且将这些文件复制到另一个目录,该目录称为backup?

4

5 回答 5

4

假设 ack 就像 grep ......你可以这样做:

cp`svn st | 确认'^M' | cut -b 8-` 备份

我会把它作为评论发布......但我不知道如何逃避评论中的反引号......

于 2012-05-03T14:28:16.513 回答
2
svn status | grep '^[ADMR]' | cut -b 8- | xargs -I '{}' rsync -R  {} /directry/
于 2013-03-18T06:55:39.537 回答
1

这会做(bash):

#!/bin/bash
set -eu

# for each modified file
for f in $(svn st| awk '/^M/{print $2}'); do
    # create a directory under backup root and copy the file there
    mkdir -p .../backup/${f%/*} && cp -a $f .../backup/$f
done
于 2012-05-03T14:18:16.063 回答
1

在 Windows 8 中,可以在当前 svn 目录下使用这个命令:

(FOR /F "tokens=2 delims== " %i IN ('svn st ^| findstr "^[ADMR]"') DO @echo %i & echo f| xcopy /f /y %i c:\projects\backup\%i)
于 2013-08-02T09:37:02.793 回答
0

这对我行得通:

svn status | grep ^M | awk '{print $2}' | xargs -I '{}' cp --parents {} /backup/
于 2018-01-22T11:01:06.740 回答