Это всего лишь маленький скрипт. Я бегу к непрерывному циклу, чтобы проверить каталог и переместить каждый файл, который там есть. Этот код работает, и я запускаю его в фоновых процессах. Но по какой-то причине я получаю следующую ошибку: '/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: Скопировать файл из одного места в другое
любая идея, почему она говорит мне, что она идентична, хотя пути разные?
Большое спасибо
ниже сценарий
#!/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");
}
}
}
Любые причины, по которым вы делаете это в Perl, а не в сценарии оболочки? – Kusalananda
нет настоящей причины, это просто рабочая сторона сервера, и у меня было небольшое количество perl exp –