我在写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将是我的文件名。创建时的windows日期和时间是正确的,但不明白为什么在linux中它给了我错误的日期和时间。
从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 U AHG 5000 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 2015年7月30日星期四16:45:25
9024 U AHG 5000 0.00星期四2015年7月30日16:45:25
最佳答案
这里的问题不是你在做什么,而是你误解了ctime
是什么。Linux文件系统记录的是更改时间而不是创建时间。mtime
表示文件内容的修改。ctime
表示属性的修改。因此,它们很可能是相同的数字。
但是,您不能得到“创建时间”,因为ext文件系统不记录它。(其他文件系统格式可能是-例如ntfs-但是我不确定我是否建议在linux上使用ntfs!)
关于linux - 要显示某些文件的创建时间。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32732439/