我只想處理10分鐘前最後修改的文件。我正在努力做到這一點。如何在perl中找到幾分鐘較舊的文件
for my $file (<${dir}/*csv>_) {
if (-M $file < .0069) {
next;
}
else {
code ...
}
}
.0069天已計爲10分鐘(10 /(24 * 60))。現在目錄中的文件存在於1天以前的文件中,但是任何小於1天的文件都會被錯誤地識別。例如,如果文件比23小時大,它將在if塊中處理而不是其他處理。 我想`-M $文件'將其值轉換爲整數(即在這種情況下爲0)。任何人都可以幫忙嗎?謝謝
附加: 謝謝大家。我正在嘗試使用文件:: Stat
for my $file (<${dir}/*csv>_) {
my $mtime = (stat($file))[9];
my ctime = time;
my $time_diff = $ctime - $mtime;
if ($time_diff < 600) {
next; }
else {
code ...
}
}
但是,這並不能提供準確的結果。對於剛創建的文件$ time_diff必須幾乎爲零,但它出現在-17640附近。我想時代不應該是任何問題,因爲兩個時代都是從時代開始計算的。我錯在哪裏? (服務器時間如下IST(+5:30個小時)
}
'-M $ file'實際返回什麼?你能舉出一些你想要的文件和你不需要的文件的例子嗎? – melwil
目前尚不清楚你的期望。您的代碼將處理超過十分鐘前修改的所有文件,其中包括昨天修改的文件。 – Borodin
@melwil:'-M'返回自文件修改以來的(浮點)天數 – Borodin