关于 shell 问题,麻烦大神指点

2016-03-17 17:27:57 +08:00
 evenno

-rw-rw-r-- 1 ltn ltn 4904497 Mar 17 17:22 common-default.log -rw-rw-r-- 1 ltn ltn 3935188 Mar 15 23:59 common-default.log.2016-03-15.log -rw-rw-r-- 1 ltn ltn 7070783 Mar 16 23:59 common-default.log.2016-03-16.log -rw-rw-r-- 1 ltn ltn 5297 Mar 17 16:24 common-error.log -rw-rw-r-- 1 ltn ltn 6185 Mar 15 12:30 common-error.log.2016-03-15.log -rw-rw-r-- 1 ltn ltn 5307 Mar 16 11:14 common-error.log.2016-03-16.log

日志切割出来是这种格式

我现在想写个脚本,就是结尾有日期的 log , mv 到另一个文件夹下,对这个日期的 log ,变量不知道如何写,附上 shell #!/bin/bash

logfile="*.[0-9]-[0-9]-[0-9].log"

if [ $# != 2 ] then echo "USAGE: $0 Souce_dir Target_dir" exit 1 fi

if [[ -d "$1" ]]; then cd $1; else echo "No Such directory $1"; exit 2 fi

mv $logfile $2

报错是这样的 mv: cannot stat `*.[0-9]-[0-9]-[0-9].log': No such file or directory

2153 次点击
所在节点    CentOS
4 条回复
Havee
2016-03-17 17:45:49 +08:00
文件名前后都有 "." 的移出来
Havee
2016-03-17 17:46:23 +08:00
文件名字母 log 前后都有 "." 的移出来
zava
2016-03-17 21:16:22 +08:00
ls | grep -P '\d{4}-\d{2}-d{2}\.log' | xargs -I {} mv {} /your/dir
Bardon
2016-03-17 23:01:01 +08:00
样本
common-default.log
common-default.log.2016-03-15.log
common-default.log.2016-03-16.log
common-error.log
common-error.log.2016-03-15.log
common-error.log.2016-03-16.log

要求带时间的备份

用什么正则,难道不是计划任务直接跑 mv *.log.* /your/path

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/264247

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX