排除在命令行输出目录
问题描述:
我试图创建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,则不包含混合目录。
谢谢!
答
,我决定用一个快速的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