Perl复制命令等待复制完成

标签 perl copy

我将文件从位置 windowsLocation1 复制到 LinuxLocation1,格式为“windowsLocation1->windowsLocation2-> LinuxLocation1”,windowsLocation2 是可从 Windows 和 Linux 计算机访问的交换区域

copy("//server1/dir1/myfile.txt", "$copy_dir/myfile.txt") or die "Copy failed: $!";
<telnet into Linux machine>
$obj->{telnet}->print( "sleep 10; cp /net/dir1/myfile.txt /tmp/files/");
#added "sleep 10, to avoid the race condition between copy and cp.

这个“ sleep 10”秒有时是不够的,它抛出错误为“cp:读取错误:输入/输出错误”,我认为第二个“cp”命令在第一个“复制”时尝试访问文件命令仍在写入。使用 Perl v5.6.1

有办法避免这种情况吗?谢谢。

最佳答案

我猜测您是从 File::Copy 模块获取 copy 例程。

在对 CPAN 进行简短搜索后,我发现了一个名为 File::Copy::Vigilant 的模块看起来它可能适合您的需求,并且有来自 perl 5.6 的成功测试报告。

我还发现了File::Copy::Reliable但只有 perl 5.8 的报告,尽管这并不能证明什么。就本模块而言,您可能只是一位时间旅行先驱......

关于Perl复制命令等待复制完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25852045/

相关文章:

perl - 比较变量在Perl中的前导零

php - PHP中如何获取复制功能的进度状态?

javascript - 在 JavaScript 中复制卡住数组有什么缺点吗?

iPhone 通过代码将某些内容复制到剪贴板

python - 在 perl 中运行 python 脚本

perl 最大标量值

python - 如何从 perl 调用的 python 传递字符串?

perl - 有没有比 kakasi 库更适合 gojûon 校对的东西?

java - 在 Java 中复制文件并替换现有目标

c# - 何时复制 C# 值/对象,何时复制其引用?