我正在寫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");
}
$文件將是我的文件名。窗口日期&創建時間是正確的,但不明白爲什麼在LINUX它給我錯誤的日期&時間。
代的輸出,從窗戶
9023-0 50000 5111 10.22 星期一07月21 17點44分38秒2014
9023-2 100000 23251 23.25 週五年04月11 10點12分19秒2014
9024_AHG 5000 0 0.00 星期四11月27日15時28分55秒2014
代的輸出,從Linux
9023-0 50000 5111 10.22 星期四07月30日16時45分25秒2015
9023-2 100000 23251 23.25 星期四07月30日16時45分25秒2015
9024_AHG 5000 0 0.00 星期四07月30日16時45分:25 2015
在不同系統上訪問文件系統的方式如何?顯然你必須有某種你使用的文件服務器,或者是一個可移動的驅動器? – arkascha
如果您從Windows將文件傳輸到Linux,其創建時間將會更改並顯示它們被移動的時間。 –
@ChankeyPathak嚴格地說,這不會是一個舉動,而是一個副本。你不能在系統之間移動文件。這就是爲什麼實際上創建了一個新文件,它解釋了新的創建時間。一個真正的_move_實際上會保存時間。 – arkascha