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の場合は何も返さないため、ディレクトリをミックスから除外します。

ありがとう!

4

1 に答える 1

0

私はこれを簡単なperlスクリプトで解決することにしました:

extract_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 に答える