LINUX shell 如何获取当前时间之前24小时的所有文件,文件都是以时间命名的!

比如我的文件是20110307100000,此时获取10点之前24小时之内的文件,... 比如我的文件是20110307100000,此时获取10点之前24小时之内的文件, 展开
 我来答
百度网友5311d79
推荐于2021-02-19 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3222万
展开全部
24小时,就是相差一天,所以变化的只有天数。
我这里提供一个笨方法:
用date获取当前日期和时间,格式化成你的文件命名格式,用下面的字符串截取方法获得天数:
${varible:n1:n2}:截取变量varible从n1到n2之间的字符串
天数减1后,重新组织成新的字符串。
用循环比较 ls 出来的文件名与这个字符串。
代码试过后再放上来。
更多追问追答
追问
大侠,可否把代码贴出来参考下呢,谢谢
追答
#获取当前日期时间的前一天并格式化为"年月日时分秒"格式
myTime=`date -d '1 day ago' "+%Y%m%d%k%M%S"`
#将 ls 的结果与之比较,输出大于等于该时间的所有文件名
ls | while read line
do
#使用的是整数表达式,这就要求你文件夹下的所有文件都以这种数字格式命名
[ "$line" -ge $myTime ] && echo “$line”
done

注意:如果你的shell不支持date的-d选项,那么只有用我上面说的字符串截取方法了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式