ฉันกำลังคัดลอกไฟล์จากไฟล์หนึ่งไปยังอีก ฉันต้องการตรวจสอบว่าไฟล์ต้นฉบับนั้นมีอยู่หรือไม่ซ้ำทุก ๆ 10 วินาที ฉันจะตรวจสอบในระหว่างการคัดลอกได้อย่างไร
ฉันกำลังคัดลอกไฟล์จากไฟล์หนึ่งไปยังอีก ฉันต้องการตรวจสอบว่าไฟล์ต้นฉบับนั้นมีอยู่หรือไม่ซ้ำทุก ๆ 10 วินาที ฉันจะตรวจสอบในระหว่างการคัดลอกได้อย่างไร
คำตอบ:
บางทีฉันอาจไม่เข้าใจคำถามทั้งหมด ทำงานต่อไปนี้หรือไม่
use File::Copy;
sleep 10 until -e $source;
copy($source, $target);
คุณสามารถใช้ -e
ทดสอบไฟล์และ sleep
:
perl -e'$s = "/source/path"; sleep 10 until -e $s; `rsync $s /destination/path`'
หากคุณอยู่ในสคริปต์ Perl:
#!/usr/bin/env perl
use warnings;
use strict;
# be careful if your paths contain spaces
my ($source, $dest) = qw(path/to/source path/to/dest);
sleep 10 until(-e $s);
system('rsync', $source, $dest);