¿Cómo puedo obtener todos los archivos en un directorio, pero no en subdirectorios, en Perl?

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

  •  22-07-2019
  •  | 
  •  

Pregunta

¿Cómo puedo encontrar todos los archivos que coinciden con ciertos criterios ( -M , antigüedad de la modificación en días) en una lista de directorios, pero no en sus subdirectorios?

Quería usar File :: Find, pero parece que siempre va a los subdirectorios también.

¿Fue útil?

Solución

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

Otros consejos

Utilice readdir o File :: Slurp :: read_dir junto con grep .

 #!/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, 

Utilice readdir o File :: Slurp :: read_dir junto con grep .

<*>) } read_dir $dir; print "

Utilice readdir o File :: Slurp :: read_dir junto con grep .

<*>\n" for @files; }

Puede configurar File :: Find :: prune dentro de la función 'wanted' para omitir los árboles de directorios. Agregue algo como $ File :: Find :: prune = 1 if (-d & amp; & amp; $ File :: Find :: name ne ". & Quot;);

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top