2012-04-11 86 views
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的方向行,但是如果返回true,则返回文件名,如果返回false,则不包含混合目录。

谢谢!

回答

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