linux命令--查找指定日期文件,-newermt的使用

使用find命令查找指定时间或时间段之间的数据,涉及到参数mtime

 

命令时间线:

今天:2020-11-11

系统时间:2020-11-11 11:11:11

以今天为基准值,

---------------------------------

find /lt/logs/ -type f -name "*" -newermt '2020-11-08' ! -newermt '2020-11-10' | xargs ls -lt

代表查找11-08,11-09两天的数据并以ls -lt格式进行显示;

-type f:代表一般文件,

-type d:d代表目录(文件夹),

 

小技巧:

为了避免下一步删除出现失误,也为了避免在查找时没有找到文件而将当前您所在目录的文件列表输出,在执行这两条命令之前,您可以建一个空目录,在这个空白目录里面进行操作,这样,每次查找到或未查找到都能方便验证,结果显示比较直接。

---------------------------------

 

==查找指定日期之间的文件,并删除===

find /lt/logs/ -type f -name "*" -newermt '2020-11-08' ! -newermt '2020-11-10' -exec rm {} \;

代表查找11-08,11-09两天的数据并进行删除,没有删除确认框;

 

---------------------------------

 

备注:

| xargs ls -lt

xargs:代表将迁移查找出来的文件进行使用下一个命令【ls -lt】继续进行处理。

 

 

删除的解释:【来源于“百度知道https://zhidao.baidu.com/question/551356621810102292.html”】

问:find /lt/logs/ -name "*.pcap" -newermt '2020-11-08' ! -newermt '2020-11-10' -exec rm {} \;

答:

find /lt/logs/ -name "*.pcap" -newermt '2020-11-08' ! -newermt '2020-11-10' -exec rm {} \;意思从/lt/logs/当前目录查找以.pcap为文件后缀名的所有文件;

-exec 是表示查找后紧接着执行的命令,因为rm不接受管道输入,所以不能写成find /lt/logs/ -name "*.pcap" -newermt '2020-11-08' ! -newermt '2020-11-10' | rm的形式,

rm就是删除文件的意思;

{} 代表的是把find 到的结果传给-exec作为参数 ;

-exec 参数必须用分号;结尾,但是在shell中不懂分号;是什么鬼,所有要用转义符\加分号,所以就有了\;

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值