如何在Perl中复制文件并保持其时间戳?

时间:2009-11-01 14:25:50

标签: perl file copy timestamp

我正在使用File :: Copy模块在Perl中复制文件:

#! /usr/bin/perl -w

use File::Copy;

copy("somefile.log", "copiedfile.log");

我想保留时间戳(特别是修改时间),但这似乎不是一个选项。

有没有一种直接的方法来实现这一目标而不需要对“cp -p”进行系统调用?

2 个答案:

答案 0 :(得分:7)

您可以使用stat来获取时间戳,并使用utime来设置时间戳。如果你可以逃脱它,系统并不总是坏的。你永远不会比cp -p做得更快。你认为File::Copy会这样做,但是在unix上却没有。阿比盖尔提交了RT #96158,但没有采取任何行动。他有关于它破碎的介绍,但我还没有在网上看到它。

答案 1 :(得分:4)

检查File::Copy。在syscopyrmscopy下查看。它谈到那里的时间戳。