كيف يمكنني الحصول على كل الملفات في دليل، ولكن ليس في الدلائل، في بيرل؟

StackOverflow https://stackoverflow.com/questions/1826675

  •  22-07-2019
  •  | 
  •  

سؤال

وكيف يمكنني العثور على كافة الملفات التي تطابق معايير معينة (-M، سن تعديل في أيام) في قائمة الأدلة، ولكن ليس في الدلائل الخاصة بهم؟

وكنت أرغب في استخدام ملف :: البحث، ولكن يبدو أنه يذهب دائما إلى الدلائل أيضا.

هل كانت مفيدة؟

المحلول

@files = grep { -f && (-M) < 5 } <$_/*> for @folders;

نصائح أخرى

استخدم readdir أو <وأ href = "HTTP: //search.cpan كافيه / perldoc / ملف :: إلتهم "يختلط =" نوفولو noreferrer "> ملف :: :: إلتهم read_dir بالتعاون مع <لأ href =" http://perldoc.perl.org/functions/grep. أتش تي أم أل "يختلط =" نوفولو noreferrer "> البقرى .

 #!/usr/bin/perl

use strict;
use warnings;

use File::Slurp;
use File::Spec::Functions qw( canonpath catfile );

my @dirs = (@ENV{qw(HOME TEMP)});

for my $dir ( @dirs ) {
    print "'$dir'\n";
    my @files = grep { 2 > -M and -f }
                map { canonpath(catfile $dir, $_) } read_dir $dir;
    print "$_\n" for @files;
}

ويمكنك تعيين ملف :: البحث :: تقليم ضمن الدالة مطلوبين لتخطي أشجار الدليل. إضافة شيء من هذا القبيل $ الملف :: البحث :: تقليم = 1 إذا كان (&& -d $ الملف :: البحث :: اسم ني ".")؛

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top