本篇主要讲解touch与时间相关的操作,关于touch创建文件,就不再赘述。
stat 【文件】
比如我创建了一个:test.c文件,使用此命令查看此文件属性。
与时间相关的信息:
其余信息(了解即可):
我最开始的时候还疑惑,文件的创建信息为啥不给出呢?
在网上找到这样一条解释的通的评论:
大意为:有些版本支持(新),有些版本不支持(老),但是由于系统调用接口不明确的问题,Linux系统就没有明确的指出Birth Time,反而用了一个 - 来表示一个未知的时间,即使系统内部放有birth time。
既然stat无法表示出文件的创建时间,那有没有指令能表示出系统的创建时间呢?
——是有的。
在支持ext4的情况下,我们可以这样查找。
df -T
2. 查看文件的索引结点
可以直接用stat查看也可以用:
ls -i 【文件名】
sudo debugfs -R 'stat <索引结点编号>' /dev/vda1
OK,基本的时间状态已经掌握,那么我们来继续修改文件的时间状态吧!
touch -a 【文件】
touch -m 【文件】
时间有两种格式:
修改atime与mtime有两种方法:
touch -d 【标准的时间格式】 【文件】
touch -t 【粗略的时间格式】 【文件】
说明:一般情况下是修改不了Change时间的,因为Change时间是随着系统时间的改变而改变的,因此我们需要修改系统时间,再对原文件进行一次操作即可。
sudo date -s 【粗略的时间】
这里我就接着上面的date -t之后的结果继续操作了,其实这里要看实际需要。
touch -t 【粗略的时间格式】 【文件】
时间分为:
1 . 硬件时间
2. 系统时间(date查看就是)
从硬件时间恢复系统时间。
sudo hwclock --hctosys
注意:可能系统时间与硬件时间不同,修改系统时间应查看一下。
sudo hwclock --show && date +"%F %H:%M:%S"
啥?硬件时间都修改了。没事只要有网,那就还有办法。
从网络中恢复系统时间。
sudo yum -y install ntp ntpdate
service ntp stop
ntpdate cn.pool.ntp.org
date +"%F %H:%M:%S"
最近在复习touch指令的时候,选项搞懵逼了,不同的选项,时间格式可能并不并不相同,因此一直会出现无效时间格式的提示,特意写了一篇博客总结一下,希望对大家有所帮助!