#!/usr/bin/env perl use strict; use warnings; use Getopt::Long qw(GetOptions); GetOptions( 'dir=s' => \my $Flag_Directory ) or exit 1; die "Usage: $0 [--dir=d] inputfile outputfile\n" if @ARGV < 2; $Flag_Directory = '/etc/' if !defined $Flag_Directory; $Flag_Directory = quotemeta($Flag_Directory); my $output_file = pop @ARGV; open my $outfh, '>', $output_file or die "$0: could not write '$output_file': $!\n"; while (readline) { chomp; print "input: '$_'\n"; my $filename = quotemeta($_); print $outfh qx(find $Flag_Directory -type f -name $filename -print); }
Хотя в Perl было бы более идиоматично использовать вместо обстрела File :: Find или File :: Find :: Rule .
Возможность использования суффиксов, таких как K
и `M, была введена в systemd 228 , Debian Jessie предоставляет systemd 215 и, следовательно, не может использовать эту функцию. В качестве обходного пути вы можете вручную выполнить умножение и вместо этого указать байты.