Aktuelle SeiteWähle Forum / Perl / Allgemeines zu Perl / Verzeichnisstrukturen kopieren und Dateien älter als X Tage dorthin verschieben
Verzeichnisstrukturen kopieren und Dateien älter als X Tage dorthin verschieben

Hallo alle zusammen, ich habe ein Problem, ich weiß nicht, wie ich die Verzeichnisstrukturen und alle Dateien, die sich da befinden von einen Ordner in ein anderes verschieben kann. Wenn diese Dateien in ein neues Ordner kopiert werden, müßen die im alten Ordener gelöscht werden. Kann mir vielleicht einer dabei helfen???
find(\&wanted,$dir);
sub wanted {
my $file = $File::Find::name;
push(@allFiles,$file) if ( -M $file > $inum_tage);
}Mit dieser Methode finde ich alle Elemente aus dem durchsuchten Ordner, die älter als xxx Tage = = $inum_tage. Danach habe ich es mit diesem Code versucht.......der leider falsch ist...
(use File::Copy;)
foreach (@allFiles)
{
move ($dir, $newdir);
}was mache ich falsch?? Warum funktioniert es nicht??
Ich bedanke mich in vorraus...
Trackback URL für diesen Beitrag:
- Anmelden oder Registrieren um Kommentare zu schreiben
- 459 Aufrufe
-

use File::Copy;my $newdir = "/home/user/whatever";
foreach (@allFiles)
{
print "$_\n";
move ($_, $newdir);
}
also mitlerweile habe ich geschaft, alle Elemente zu Sortieren und in ein neues Ordner zu verschieben, aber die Ordnerstruktur geht verlören, der Skript schmeißt mir einfach alle Elemente aus verschiedenen Unterordnern in ein Backup, wie bekomme ich es hin, dass die Ordnerstruktur auch in Backup nicht verlören geht??
hier ist mein code:
foreach (@sortFiles){ #@sortFiles, sind alle Elemente, die älter als 30 Tage sind
Move($_,$bakupdir);
}
#STRUKTUR VON DIREKTORYS ERZEUGEN
#*****************************************************************************
sub Move {
my ($dir_file, $bakup) = @_;
my @dirs = split '/', $dir_file;
my $file = pop @dirs;
foreach (@dirs) {
next if -d $bakup;
mkdir($bakup) or print("Can't create dir $bakup: $!"),return undef;
}
rename($dir_file, "$bakup/$file") or
print("Can't move $dir_file to $bakup: $!"),return undef;
return 1;
}
Crosspost www.perl-community.de/bat/poard/thread/14941