指定したフォーマットの期限切れファイルを削除するには、3つの方法があります.
実際のプロジェクトでは、mysqlバックアップファイルの削除、ログファイルの削除など、このようなニーズに遭遇することがよくあります.
この文章では3つの方法を提供して実現します
あるディレクトリの下の3日5時間前のtxtという接尾辞のファイルを削除します.
一、shellスクリプト方式
二、php方式
三、python方式
この文章では3つの方法を提供して実現します
あるディレクトリの下の3日5時間前のtxtという接尾辞のファイルを削除します.
一、shellスクリプト方式
0 0 * * * find /home/test -name "*.txt" -type f -cmin +4620 -exec rm {} \;
二、php方式
/*
* $time
* crontab
* @param $dir ,
* @param $time
* @return void
*/
function delFile($dir, $time){
if(is_dir($dir)){
if($dh=opendir($dir)){
while (false !== ($file = readdir($dh))){
if($file!="." && $file!=".."){
$fullpath=$dir."/".$file;
if(!is_dir($fullpath)){
$filedate=filectime($fullpath);
if ( $filedate <= $time && preg_match( "/\.txt$/i" , $fullpath )) {
unlink($fullpath); //
}
}
}
}
}
closedir($dh);
}
}
delFile("C:\\Users\\EDZ\\Desktop\\file", time() - 277200);
三、python方式
import os
import sys
import time
# crontab
def del_file(dir, t):
#
files = os.listdir(dir)
for file in files:
file_path = dir + "/" + file
#
if os.path.isfile(file_path) & file.endswith('.txt'):
#
last = int(os.stat(file_path).st_mtime)
#
if last <= t:
os.remove(file_path)
elif os.path.isdir(file_path):
# ,
del_file(file_path, t)
# 3 5 277200
del_time = int(time.time()) - 277200
del_file("C:\\Users\\EDZ\\Desktop\\file", del_time)