LINUX shell 如何获取当前时间之前24小时的所有文件,文件都是以时间命名的!
展开全部
24小时,就是相差一天,所以变化的只有天数。
我这里提供一个笨方法:
用date获取当前日期和时间,格式化成你的文件命名格式,用下面的字符串截取方法获得天数:
${varible:n1:n2}:截取变量varible从n1到n2之间的字符串
天数减1后,重新组织成新的字符串。
用循环比较 ls 出来的文件名与这个字符串。
代码试过后再放上来。
我这里提供一个笨方法:
用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选项,那么只有用我上面说的字符串截取方法了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询