linux指令获取时间,linux指令(stat date cal)



一、stat指令

ls 命令可能是每一个 Unix 使用者第一个学习的命令之一, 但它仅仅显示了 stat 命令能给出的信息的一小部分。

0f8cb2168c6f5bc6dad73a9435136ec8.png

这里ll显示的时间仅仅是文件修改的时间

stat 命令从文件的索引节点获取信息。使用 stat 命令, 你会看到下面这些:

61357f694cfc274966f6f8433123eacc.png

正如你可能已经了解的那样, 每一个系统里的文件都存有三组日期和时间, 它们包括最近修改时间(即使用 ls -l 命令时显示的日期和时间), 最近状态改变时间(包括对文件重命名)和最近访问时间。

access time ,modify time:  ,change time

既然已经知道了这三个时间的属性那么我们就可以对它进行修改

(1)、修改access time的时间(表示我们最后一次访问(仅仅是访问,没有改动)文件的时间 )

be208e04caaefad143a9263a61c54f77.png

(2)修改change time时间(表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等等 )

2e04b13e9c91ac317ab6659654ec561b.png

(3).modify time (表示我们最后一次修改文件的时间 )

2d93ffce7f74f9b5cfab1291928ecfd3.png

由此,我们可以知道

1,当我们仅仅只是读取文件时,access time 改变,而modify,change time 不会改变

2,当修改文件时,access,modify,change time 都会跟着改变

3,当修改文件属性时,change time 改变,而access,modify time 不变。

如果我们喜欢的话, 我们也可以通过其他命令来获取这些信息。

stat 命令也可应用与文件夹。

在这个例子中, 我们可以看到有许多的链接。

5e47d1e5e34da9b0908cbbd0bc30d7d0.png

stat 命令还可以一次显示所有我们想要的信息。 下面的例子中, 我们只想查看文件类型, 然后是硬连接数。

ab39b74a3077d9885c74d064985c3f9c.png

在下面的例子中, 我们查看了文件权限 -- 分别以两种可用的格式 -- 然后是文件的 SELinux 安全环境。最后,我们我们可以以从 Epoch 开始的秒数格式来查看文件访问时间。

1.$ stat --format=%a trythats

2.700

3.$ stat --format=%A trythat

4.-rwx------

5.$ stat --format=%C trythat

6.(null)

7.$ stat --format=%X bin

8.1411282845

下面全部是可用的选项:

1.%a 八进制表示的访问权限

2.%A 可读格式表示的访问权限

3.%b 分配的块数(参见%B)

4.%B %b 参数显示的每个块的字节数

5.%d 十进制表示的设备号

6.%D 十六进制表示的设备号

7.%f 十六进制表示的Raw模式

8.%F 文件类型

9.%g 属主的组 ID

10.%G 属主的组名

11.%h 硬连接数

12.%i Inode号

13.%n 文件名

14.%N 如果是符号链接,显示器所链接的文件名

15.%o I/O 块大小

16.%s 全部占用的字节大小

17.%t 十六进制的主设备号

18.%T 十六进制的副设备号

19.%u 属主的用户 ID

20.%U 属主的用户名

21.%x 最后访问时间

22.%X 最后访问时间,自Epoch开始的秒数

23.%y 最后修改时间

24.%Y 最后修改时间,自Epoch开始的秒数

25.%z 最后改变时间

26.%Z 最后改变时间,自Epoch开始的秒数

针对文件系统还有如下格式选项:

1.%a 普通用户可用的块数

2.%b 文件系统的全部数据块数

3.%c 文件系统的全部文件节点数

4.%d 文件系统的可用文件节点数

5.%f 文件系统的可用节点数

6.%C SELinux的安全上下文

7.%i 十六进制表示的文件系统 ID

8.%l 文件名的最大长度

9.%n 文件系统的文件名

10.%s 块大小(用于更快的传输)

11.%S 基本块大小(用于块计数)

12.%t 十六进制表示的文件系统类型

13.%T 可读格式表示的文件系统类型

二、date指令

时间相关:date显⽰示:

date指定格式显⽰示时间:date +%Y_%m_%d,date +%Y:%m:

%d

date命令本⾝身提供了⽇日期的加减运算

date⽤用法:date [OPTION]... [+FORMAT]

date [-u|--utc|--universal] [MMDDhhmm[[CC]YY]

[.ss]]

date可以⽤用来显⽰示或设定系统的⽇日期与时间。

1.在显⽰示⽅方⾯面,使⽤用者可以设定欲显⽰示的格式,格式设定为⼀一个加号后接数个标记,其中可⽤用的标记列表如下:

%n :下⼀一⾏行

%t :跳格

%H :⼩小时(00..23)

%I :⼩小时(01..12)

%k :⼩小时(0..23)

%l :⼩小时(1..12)

%M :分钟(00..59)

%p :显⽰示本地AM 或PM

%r :直接显⽰示时间(12 ⼩小时制,格式为hh:mm:ss [AP]M)

%s :从1970年1⽉月1⽇日00:00:00 UTC到⺫⽬目前为⽌止的秒数

%S :秒(00..61)

%T :直接显⽰示时间(24 ⼩小时制)

%X :相当于%H:%M:%S

%Z :显⽰示时区%a : 星期⼏几 (Sun..Sat)

%A :星期⼏几(Sunday..Saturday)

%b :⽉月份(Jan..Dec)

%B :⽉月份(January..December)

%c :直接显⽰示⽇日期与时间

%d :⽇日(01..31)

%D :直接显⽰示⽇日期(mm/dd/yy)

%h :同%b

%j :⼀一年中的第⼏几天(001..366)

%m :⽉月份(01..12)

%U :⼀一年中的第⼏几周(00..53) (以Sunday 为⼀一周的第⼀一天的情形)

%w :⼀一周中的第⼏几天(0..6)

%W :⼀一年中的第⼏几周(00..53) (以Monday 为⼀一周的第⼀一天的情形)

%x :直接显⽰示⽇日期(mm/dd/yy)

%y :年份的最后两位数字(00.99)
%Y : 完整年份 (0000..9999) 在设定时间⽅方⾯面date -s //设置当前时间,只有root权限才能设置,其他只能查看。

date -s 20080523 //设置成20080523,这样会把具体时间设置成空

00:00:00
date -s 01:01:01 //设置具体时间,不会对⽇日期做更改

date -s “01:01:01 2008-05-23″ //这样可以设置全部时间

date -s “01:01:01 20080523″ //这样可以设置全部时间

date -s “2008-05-23 01:01:01″ //这样可以设置全部时间

date -s “20080523 01:01:01″ //这样可以设置全部时间

3.加减date +%=Y%m%d         //显⽰示现在天年⽉月⽇日

date +%Y%m%d --date="+1 day"  //显⽰示后⼀一天的⽇日期

date +%Y%m%d --date="-1 day"  //显⽰示前⼀一天的⽇日期

date +%Y%m%d --date="-1 month"  //显⽰示上⼀一⽉月的⽇日期

date +%Y%m%d --date="+1 month"  //显⽰示下⼀一⽉月的⽇日期

date +%Y%m%d --date="-1 year"  //显⽰示前⼀一年的⽇日期

date +%Y%m%d --date="+1 year"  //显⽰示下⼀一年的⽇日期

时间戳

时间->时间戳:date +%s时间戳->时间:date +%Y:%m:%d  -d @1425384141 Unix时间戳(英⽂文为Unix epoch, Unix time, POSIXtime或Unix timestamp)是从1970年1⽉月1⽇日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

实例如下:

39a55bc333a1d8309190d810b09fa9b0.png

三、cal指令

cal

命令可以⽤用来显⽰示公历(阳历)⽇日历。公历是现在国际通⽤用

的历法,⼜又称格列历,通称阳历。“阳历”⼜又名“太阳历”,系以地球绕⾏行太阳⼀一周为⼀一年,为⻄西⽅方各国所通⽤用,故⼜又名“⻄西历”。命令格式:

cal [参数][⽉月份][年份]

命令功能:

⽤用于查看⽇日历等时间信息,如只有⼀一个参数,则表⽰示年份

(1-9999),如有两个参数,则表⽰示⽉月份和年份

命令参数:

1   显示一整年的时间

-1显⽰示⼀一个⽉月的⽉月历

-3显⽰示系统前⼀一个⽉月,当前⽉月,下⼀一个⽉月的⽉月历

显⽰示星期天为⼀一个星期的第⼀一天,默认的格式

-m显⽰示星期⼀一为⼀一个星期的第⼀一天

-j显⽰示在当年中的第⼏几天(⼀一年⽇日期按天算,从1⽉月1号算起,默认显⽰示当前⽉月在⼀一年中的天数)

-y

显⽰示当前年份的⽇日历

⽰例:

254ff9f62c4292e5de5696798a32009f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值