linux 如何find 到日期格式文件?

有这么一个需求,linux操作系统会生成类似monitor-20211216这样文件名格式的文本文件,这个文件会在一个固定目录内生成,这个文件后面的8位数字的日期会随着日期变动,前面部分monitor-则是固定的,现在需要做一个定时任务,每天找到类似monitor-20211216的文件,然后添加一个后缀.log.
目前是这么写:

 find /data/wwwlogs/  -name "monitor.log-*" | xargs  -t  -i mv  {} {}.log

但是会出现问题,随着时间增加,文件的后缀会出现多个.log,比如monitor-20211216.log.log.log
所以,这里的匹配应该怎么写合适呢?

阅读 2.4k
1 个回答

找到了简洁的方法,日期匹配上有点不严谨,但是不会出现什么问题:

find /data/wwwlogs/ -type f -regextype 'posix-egrep' -regex '/data/wwwlogs/monitor.log-[0-9]{8}$' | xargs -t -i mv {} {}.log
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题