Dies ist nur ein kleines Skript, das ich auf Endlosschleife ausführen, um ein Verzeichnis zu überprüfen und jede Datei zu verschieben, die dort ist. Dieser Code funktioniert und ich führe ihn in den Hintergrundprozessen. Aber aus irgendeinem Grund bekomme ich den folgenden Fehler: '/home/srvc_ibdcoe_pcdev/Niall_Test/new_dir/..' and '/home/srvc_ibdcoe_pcdev/Niall_Test/perl_files/..' are identical (not copied) at move2.pl line 27
Perl: Datei von einem Ort zu einem anderen kopieren
eine Idee, warum es mir sagt, dass es identisch ist, obwohl die Wege unterschiedlich sind?
Vielen Dank
Skript unter
#!/usr/bin/perl
use diagnostics;
use strict;
use warnings;
use File::Copy;
my $poll_cycle = 10;
my $dest_dir = "/home/srvc_ibdcoe_pcdev/Niall_Test/perl_files";
while (1) {
sleep $poll_cycle;
my $dirname = '/home/srvc_ibdcoe_pcdev/Niall_Test/new_dir';
opendir my $dh, $dirname
or die "Can't open directory '$dirname' for reading: $!";
my @files = readdir $dh;
closedir $dh;
if (grep(!/^[.][.]?$/, @files) > 0) {
print "Dir is not empty\n";
foreach my $target (@files) {
# Move file
move("$dirname/$target", "$dest_dir/$target");
}
}
}
Gründe, warum Sie dies in Perl und nicht in einem Shell-Skript tun? – Kusalananda
kein wirklicher Grund, dies funktioniert nur Server-Seite und ich hatte ein kleines bisschen Perl exp –