Date création : 10-01-2008 20:56:07 Date de la dernière modification : 10-01-2008 21:14:44
 Vous êtes dans : Langage Perl Astuces / FichiersSuppression de fichiers de taille zéro d'un répertoire
Enoncé:Suppression récursive de tous les fichiers d'un répertoire dont la
taille est zéro, et ensuite afficher à la fin, les chemins absolus de fichiers
supprimés et le nombre total de fichiers supprimés.
#!/usr/bin/perl
#
use warnings;use strict;
use File::Find;
my $rep = "/home/lami20j/trash/examen";
my (@fic_vide,@chemin_fic_supp,$nbfic_supp);
sub fic_vide{
push @fic_vide, $File::Find::name if -z
}
find (\&fic_vide,$rep);
$nbfic_supp = (@chemin_fic_supp = grep { unlink } @fic_vide);
print "$nbfic_supp fichiers ont été supprimés.\n";
print "Voici la liste de fichiers supprimés :\n";
print "$_\n" foreach @chemin_fic_supp;
__END__
|
.
L'exécution
lami20j@debian:~/trash$ ls -R /home/lami20j/trash/examen/
/home/lami20j/trash/examen/:
a fichier_non_vide rep1 rep2
/home/lami20j/trash/examen/rep1:
a
/home/lami20j/trash/examen/rep2:
b
lami20j@debian:~/trash$ perl supp_fic_taill0.pl
3 fichiers ont été supprimés.
Voici la liste de fichiers supprimés :
/home/lami20j/trash/examen/a
/home/lami20j/trash/examen/rep1/a
/home/lami20j/trash/examen/rep2/b
lami20j@debian:~/trash$ ls -R /home/lami20j/trash/examen/
/home/lami20j/trash/examen/:
fichier_non_vide rep1 rep2
/home/lami20j/trash/examen/rep1:
/home/lami20j/trash/examen/rep2:
lami20j@debian:~/trash$ cat examen/fichier_non_vide
le seul fichier non vide
lami20j@debian:~/trash$
|
.
Explicaton :
A completer ...
|