当前位置:首页 » 操作系统 » linuxdateshell

linuxdateshell

发布时间: 2025-03-14 18:04:13

linux中,怎么通过shell语句获取当前日期,输出格式要求20111224.

在Linux下,可以通过date语句来获取当前日期:

输入:date +%Y%m%d

输出:20190314

命令实际执行情况如下图:


(1)linuxdateshell扩展阅读

GNU 对 date 命令的另一个扩展是 -d 选项,使用这个功能强大的选项,您可以完成很多有意义的工作。

1、快速地查明一个特定的日期究竟是星期几:

输入:date -d "nov 22"

输出:2019年 11月 22日 星期五 00:00:00 CST

在本示例中,您可以看到今年(2019年)的 11 月 22 日是星期五。

2、获得相对日期

-d 选项还可以告诉您,相对于当前日期之前或者以后的日期。

如,您需要了解两星期以后的日期,那么:

输入: date -d "2 weeks"

输出:2019年 03月 29日 星期五 00:12:24 CST

3、使用 next/last指令,您可以得到以后的星期几是哪一天:

输入: date -d "next monday" (下周一的日期)

输入: date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d

输入: date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d

输入: date -d last-month +%Y%m(上个月是几月)

输入: date -d next-month +%Y%m(下个月是几月)

4、使用 ago 指令,您可以得到过去的日期:

输入: date -d "30 days ago" (30天前的日期)

5、您可以使用负数以得到相反的日期:

输入: date -d "dec 14 -2 weeks" (相对:dec 14这个日期的两周前的日期)

输入: date -d "-100 days" (100天以前的日期)

输入: date -d "50 days" (50天后的日期)



⑵ Linux下用shell获取指定文件的最后修改时间并与系统时间比对,如果相差时间超过3分钟则执行另一个脚本

使用date命令加上合适的时间格式化字符串(+%s),会显示当前时间(或-d参数指定的时间)与1970-01-01 00:00:00相差的秒数(详细可以参考date的man手册)

所以基本想法就是使用date命令分别获取当前时间与文件修改时间的秒数,然后看这2个秒数之间是否有相差180秒以上。

获取当前时间比较简单,直接date +%s就ok了

下面看看如何获取文件时间

使用stat 命令后面跟一个文件名可以获取文件的状态,包括文件修改时间。其中文件修改时间会单独一行显示,格式如下:Modify: 2013-02-21 17:58:05.404876407 +0800 (具体的精度可能系统不同略微有些差别,但大致格式是这样)

所以我们可以stat myfilename | grep Modify来获取文件的修改时间的信息,然后通过awk分别获取时间的日期和时间段

stat myfilename | grep Modify | awk '{print $2}' #这句获取了日期段,即上面例子里面的2013-02-21

stat myfilename | grep Modify | awk '{split($3,var,".");print var[1]}' #这句获取了时间段,即上面例子里面的17:58:05,具体关于awk的使用可以参考awk的使用手册

那么现在可以获取文件修改时间与1970-01-01 00:00:00相差的描述了,就是date -d "$file_date $file_time" +%s

那么这个时间与当前时间想减的结果与180相比就可以知道是否满足条件了,满足条件的话就可以执行相应的命令。

参考代码如下:

current_datetime=`date +%s`
filedate=`stat tt.txt | grep Modify | awk '{print $2}'`
filetime=`stat tt.txt | grep Modify | awk '{split($3,var,".");print var[1]}'`
file_datetime=`date -d "$filedate $filetime" +%s
timedelta=`expr $current_datetime - $file_datetime`
if [ "$timedelta" -gt "180" ];then
echo "match condition"
fi

⑶ linux:shell 脚本 如果判断当前时间 是不是12点之前。

  • 用date命令先取得当前的时间(仅取小时数) : date '+%H' #按24小时制取hour (00..23)

  • 然后与12进行比较,判断是不是12点之前

参考脚本代码:

#!/usr/bash
hh=`date'+%H'`
if[$hh-gt12]
then
echo"$hhbehind12"
else
echo"$hhinfrontof12"
fi

⑷ 使用linux shell 命令date "+%Y-%m-%d %H:%M:%S" 后如何丢弃后面的秒数据

date "+%Y-%m-%d %H:%M:%S" | cut -d ":" -f1,2

热点内容
app后台源码 发布:2025-03-14 21:33:34 浏览:735
cftp目录是否存在 发布:2025-03-14 21:32:45 浏览:98
我的世界斗罗服务器电脑网易版 发布:2025-03-14 21:28:33 浏览:525
java是甲骨文 发布:2025-03-14 21:21:38 浏览:127
柱顶要加密 发布:2025-03-14 21:16:11 浏览:854
魔声蓝牙耳机怎么在安卓显示电量 发布:2025-03-14 21:15:32 浏览:619
智慧易店服务器地址是啥 发布:2025-03-14 20:57:49 浏览:887
小米ID密码忘记了有什么危害 发布:2025-03-14 20:45:28 浏览:611
大麦路由器怎么改密码 发布:2025-03-14 20:35:42 浏览:88
数据库词组 发布:2025-03-14 20:27:21 浏览:249