linux下stat命令详解
在linux系统下,使用stat(显示inode信息)命令可以查看一个文件的某些信息,我们先来尝试一下。
简单的介绍一下stat命令显示出来的文件其他信息:
- File:显示文件名
- Size:显示文件大小
- Blocks:文件使用的数据块总数
- IO Block:IO块大小
- regular file:文件类型(常规文件)
- Device:设备编号
- Inode:Inode号
- Links:链接数
- Access:文件的权限
- Gid、Uid:文件所有权的Gid和Uid。
Linux下的三个时间:
1. Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间
2. Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。
3. Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。
上面最开始的三个时间是一模一样的,原因是我在创建它的同时修改了它的内容,所以它的大小,Blocks也发生变化,也相当于一次访问,所以,我退出保存后三个时间一致。
下面进行一一验证。
1.atime(访问时间)的更新
2.mtime(修改时间)的更新
这里我使用echo指令向hello.cpp文件中写入了一行内容,惊讶的发现,不止mtime被更新了,而且ctime也被更新了。这是问什么呢?原因很简单,前面说过,ctime在文件大小,Blocks发生变化时也会被更新,所以仔细观察上图,这两项信息是否发生变化了呢?
3.ctime(状态时间)的更新
使用chmod指令修改hello.cpp的文件权限后,状态时间再次更新。
那如果不采取这些操作导致系统自己更新这三个时间,有没有办法人为改变这三个时间呢?答案是有的,请继续往下看~
touch命令
我们都知道touch命令是用来创建文件的,其实它的用法还有一个,就是修改文件的时间戳。
用法:
-a 或–time=atime或–time=access或–time=use 只更改访问时间。
-m 或–time=mtime或–time=modify 只更改修改时间
-d、-t 使⽤指定的⽇期时间,⽽⾮现在的时间
我们来试一试:
通过上图可以发现,我只是通过-a选项试图修改hello.cpp的访问时间,结果ctime(状态时间)也发生了改变。虽然实际上我用touch操作只改变了atime,但是由于文件的状态发生了变化,所以ctime就自己更新了。
没错,和上面一样,我只是通过-m选项改了文件的修改时间,ctime依然更新了。touch指令依然只是修改了修改时间,而状态时间是系统自己更新的。为什么会这样呢?想一下,我们每次使用touch指令其实都是修改了文件的inode信息,所以状态时间就会自己更新。
最新文章
- node 通用的中间件
- 老项目的#iPhone6于iPhone6Plus适配#iPhone6分辨率与适配
- tar: 从成员名中删除开头的“/”
- java多线程学习笔记——简单
- aggregation(2):adaptive Boosting (AdaBoost)
- ORACLE 11G用于有效期
- Hibernate 配置派生属性
- PHP安全编程:网站安全设计的一些原则(转)
- jsonViewer json格式化工具
- 电脑获取手机文件的一种方式(通过手机建立ftp)
- php 获取 两个时间戳之间 相隔 【多少年】 【 多少个月】 【多少天】 【 多少个小时】 【多少分】【 多少秒 】
- python多进程web爬虫-提升性能利器
- 阿里云提示WordPress“/wp-includes/http.php输入IP验证不当”的解决办法
- win10安装MongoDB提示 the domain,user name and/or password are incorrect. Remember to use ";."; for the domain if the account is on the local machine.
- Ros使用Arduino 1安装Arduino IDE
- php打印
- ButterKnife没有Generate ButterKnife Injections问题
- Objective-C编程 - 1. 浅谈内存分配
- 【SDOI2014】【BZOJ3529】数表
- [Linux] 修改用户名密码
热门文章
- Qt532.QString::split()
- eclipse安装失败
- webpack2的配置属性说明entry,output,state,plugins,node,module,context
- python中的面向对象学习以及类的继承和继承顺序
- (转)c# 互斥锁
- 如何知道我 的python是32位还是64位的?
- Transcranial magnetic stimulation (TMS)
- 20180429 xlVBA套打单据批量复制
- Fetch的使用; Yarn命令集; NVM的管理;VueCLi3的使用;
- jquery快速获得url 的get传值