如何根据时间删除或查找文件

如何根据时间删除或查找文件,第1张

使用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 {} \

@echo off & title 批量删除指定年份的文件夹 By 依梦琴瑶

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

假如在一个目录中保留最近30天的文件,30天前的文件自动删除;

#find /tmp -mtime +30 -type f -name *.sh[ab] -exec rm -f {} /tmp _设置查找的目录;

1、mtime +30 _设置时间为30天前;

2、type f _设置查找的类型为文件;

3、name *.sh[ab] _设置文件名称中包含sha或者shb;

4、exec rm -f _查找完毕后执行删除 *** 作;

提示:将此命令写入crontab后即可自动完成查找并删除的工作。

另外的方法大同小异:#find /tmp -mtime +30 -type f | xargs rm -rf。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8123329.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存