0

我正在尝试使用以下命令创建在 SVN 版本之间添加或修改的所有文件的 tar.gz:

svn diff -r1:HEAD --summarize|grep -ve '^D'|awk '{print $2}'|xargs tar -vzcf file.tar.gz --exclude .svn

我想我正在寻找任何技巧来加强这个命令,但是我的主要问题是带有修改的文件夹被添加到存档中,这反过来又添加了整个文件夹的内容,这是不可取的。

我希望得到类似的东西,|xargs test -f但如果为真,它将返回文件名,如果为假,则不返回任何内容,因此将目录从混合中排除。

谢谢!

4

1 回答 1

0

我决定用一个快速的 perl 脚本来解决这个问题:

exclude_dir.pl:

#!/usr/bin/perl -w

use diagnostics;
use strict;

my $arg = '';

while ($arg = shift) {
  print "$arg\n" if -f $arg;
}

然后将命令修改为:

svn diff -r1:HEAD --summarize|grep -ve '^D'|awk '{print $2}'|xargs exclude_dir.pl|xargs tar -vzcf file.tar.gz --exclude .svn
于 2012-04-13T02:32:12.197 回答