perl - déplacer des fichiers à l'aide de caractères génériques
Est-il possible d'utiliser perl move
fonction de File::Copy
module d'utiliser un joker pour déplacer un certain nombre de communes des fichiers avec la même extension de fichier?
Jusqu'à présent, je ne peux obtenir move
de travail si j'ai choisi de nommer les fichiers.
Par exemple, je voulais faire quelque chose comme ça:
my $old_loc = "/share/cust/abc/*.dat";
my $arc_dir = "/share/archive_dir/";
Maintenant, je peux faire un fichier comme ceci:
use strict;
use warnings;
use File::Copy;
my $old_loc = "/share/cust/abc/Mail_2011-10-17.dat";
my $arc_dir = "/share/archive_dir/Mail_2011-10-17.dat";
my $new_loc = $arc_dir;
#archive
print "Moving files to archive...\n";
move ($old_loc, $new_loc) || die "cound not move $old_loc to $new_loc: $!\n";
Ce que je veux faire à la fin de mon programme perl, déplacer tous ces fichiers nommés *.dat
à un répertoire d'archivage.
OriginalL'auteur jdamae | 2011-10-24
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser Perl
glob
opérateur pour obtenir la liste des fichiers dont vous avez besoin pour ouvrir:Cela a l'avantage de ne pas dépendre d'un appel système, qui est non portables, dépendant du système, et peut-être dangereux.
MODIFIER: Une meilleure façon de faire ceci est juste pour alimenter le nouveau répertoire au lieu de la totalité du nouveau nom de fichier. (Désolé de ne pas penser à cela plus tôt!!!)
my $new_file = $arc_dir . $short_file_name;
. Le message est/share/archive_dir/share/cust/abc/myfile.dat: No such file or directory
. Je veux que les fichiers dearc_dir
, mais ses répertoires inteadQue la regex va correspondre à l'intégralité du chemin, parce que le
.*
est gourmand. Il est inutile de fournir un nom de fichier, cependant, sauf si vous renommez le fichier.Ah merde, vous avez raison. Il fixe. Désolé à ce sujet.
Oh, attendez, je peux faire mieux. L'édition...
merci les gars pour vos commentaires.
OriginalL'auteur Platinum Azure
De la File::Copy la documentation:
OriginalL'auteur TLP
Vous pourriez avoir plus de chance avec la système fonction (bien que vous devez être prudent avec elle).
OMI, vous ne devez jamais utiliser un système d'appel s'il est un pur perl.
OriginalL'auteur Chriszuma