我正在编写perl并在窗口系统中运行它非常好。 但是当我将perl脚本从windows系统转移到Linux时。 并且在Linux系统中运行,我得到错误的日期/时间。 需要一些帮助。谢谢。
Perl中的源代码
if (($file =~ m/(\d)(\S+)\.csv/) && ($flag == 0))
{
open(para_file,$file);
$datetime_string = ctime( stat($file)->ctime );
while ($line=<para_file>)
{
if ($line =~ /0\,170\,16\,/)
{
$cal = $cal + 1;
}
}
push(@data,"$cal");
push(@data,"$datetime_string");
}
$ file将是我的文件名。窗户日期和时间创建时间是正确的,但不明白为什么在LINUX它给我错误的日期&amp;时间。
来自Windows的生成输出
9023-0 50000 5111 10.22 2014年7月21日星期一17:44:38
9023-2 100000 23251 23.25 2014年4月11日星期五10:12:19
9024_AHG 5000 0 0.00 2014年11月27日星期四15:28:55
来自linux的生成输出
9023-0 50000 5111 10.22 2015年7月30日星期四16:45:25
9023-2 100000 23251 23.25 Thu Jul 30 16:45:25 2015
9024_AHG 5000 0 0.00 Thu Jul 30 16:45:25 2015
答案 0 :(得分:4)
这里的问题不在于你正在做什么,而是你误解了ctime
是什么。 Linux文件系统记录更改时间而非创建时间。
mtime
表示修改文件内容。 ctime
表示属性的修改。因此,它们可能是相同的数字。
然而,你无法获得的是&#34;创造时间&#34;因为EXT文件系统没有记录它。 (其他文件系统格式可能 - 例如NTFS - 但我不确定我是否建议在Linux机器上使用NTFS!)