それFile::Zglobでできるかもいうことでperlで書いてみた。zshじゃなくても使える。
zargsはxargs相当のコマンド実行機能もあるけど、ファイル一覧さえ作れればxargs使えばいい。
#!/usr/bin/env perl
use strict;
use warnings;
use File::Zglob;
use Getopt::Long;
use Pod::Usage;
our $VERSION=$File::Zglob::VERSION;
GetOptions (
'h|help' => \my $help,
'v|version' => \my $version,
) or pod2usage(2);
$version and do { print "zglob: $VERSION\n"; exit 0 };
pod2usage(1) if $help;
my @args = @ARGV;
pod2usage(2) unless $args[0];
print $_,"\n" for zglob($args[0]);
__END__
=head1 NAME
zglob - extended globs
=head1 SYNOPSIS
zglob ([options] --) pattern
Options:
-help -h brief help message
サンプル
$ zglob '**/*.pm' | head
blib/lib/CloudForecast.pm
blib/lib/Shirahata.pm
blib/lib/CloudForecast/Component.pm
blib/lib/CloudForecast/ConfigLoader.pm
blib/lib/CloudForecast/Data.pm
blib/lib/CloudForecast/Gearman.pm
blib/lib/CloudForecast/Host.pm
blib/lib/CloudForecast/Ledge.pm
blib/lib/CloudForecast/Log.pm
blib/lib/CloudForecast/Radar.pm
パターンをquoteする必要があるのが面倒だ。
この手のツールは便利かもしれないけどサーバに入れてまわるのが面倒なので普通に入っているfindなどのコマンドを使った方が結局、楽な罠