findコマンドをPerlスクリプトに変換するツール
perlにfind2perlというツールが付いていたのですが、これがちょっと面白いです。findの代わりにfind2perlを指定すると、同じ事をするためのPerlスクリプトが吐き出されます。
例えば/から*.pmなファイルを探すには
find / -name "*.pm"
としますが、このfindをfind2perlにすると↓のようになります。
% find2perl / -name "*.pm" #! /usr/bin/perl -w eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if 0; #$running_under_some_shell use strict; use File::Find (); # Set the variable $File::Find::dont_use_nlink if you're using AFS, # since AFS cheats. # for the convenience of &wanted calls, including -eval statements: use vars qw/*name *dir *prune/; *name = *File::Find::name; *dir = *File::Find::dir; *prune = *File::Find::prune; sub wanted; # Traverse desired filesystems File::Find::find({wanted => \&wanted}, '/'); exit; sub wanted { /^.*\.pm\z/s && print("$name\n"); }