繁体   English   中英

从命令行排除目录 output

[英]Exclude directories from command line output

我正在尝试使用以下命令创建在 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的东西,但如果为真,它将返回文件名,如果为假,则不返回任何内容,因此从混合中排除目录。

谢谢!

我决定用一个快速的 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM