stat命令输出结果中, Access,Modify,Change的含义

先建立一个空白文件a.txt

1[emduser@emd tmp]$ touch a.txt
2 
3[emduser@emd tmp]$ ls -al a.txt
4 
5-rw-rw-r-- 1 emduser emd 0 Dec 14 16:44 a.txt

利用stat命令查看文件a.txt的各种属性
01[emduser@emd tmp]$ stat a.txt
02 
03  File: `a.txt'
04 
05  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
06 
07Device: fd00h/64768d    Inode: 654176      Links: 1
08 
09Access: (0664/-rw-rw-r--)  Uid: (  501/ emduser)   Gid: (  506/     emd)
10 
11Access: 2011-12-14 16:44:23.000000000 +0800
12 
13Modify: 2011-12-14 16:44:23.000000000 +0800
14 
15Change: 2011-12-14 16:44:23.000000000 +0800

上述最后三行的含义如下:

Access : 文件最近一次被访问的时间

Modify:  文件内容最近一次被修改的时间

Change: 文件属性最近一次被改变的时间

  • 假如用cat命令将文件a.txt的内容输出到终端( 执行 cat a.txt), 那么只有a.txt的Access就被刷新了
  • 假如我们把当前的时间追加到a.txt(执行 date >> a.txt) , 那么a.txt的Modify和Change都被刷新
  • 假如我们把a.txt的权限改为777(执行 chmod 777 a.txt) , 那么只有a.txt的Change被刷新
  • 假如我们用vi命令把文件a.txt打开, 然后保存退出,那么a.txt的Access,Modify和Change都被刷新
PS:  我们可以使用命令touch更新a.txt的Access和Modify时间,比如:

touch -d 1999-01-01 a.txt // 将a.txt的Access和Modify时间改为1999-01-01
touch -a a.txt  // 只将a.txt的Access时间改为当前系统时间
touch -m a.txt // 只将a.txt的Modify时间改为当前系统时间

当我们用ls -l a.txt看到的时间是Modify时间

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
`stat`命令用于显示文件或文件系统的状态信息,可以使用不同的参数来指定要显示的信息格式。常用的参数如下: - `-f`:显示文件系统状态信息 - `-c`:指定自定义格式输出,可以使用`%`占位符来代表不同的状态信息,例如`%a`表示文件权限值,`%s`表示文件大小,`%n`表示文件名等等 - `-t`:以指定的格式输出时间戳,例如`%x`表示上次访问时间、`%y`表示上次修改时间、`%z`表示上次状态变化时间等等 - `-L`:对符号链接文件解引用,显示符号链接所指向的文件状态信息 - `-r`:显示文件的修改时间 - `-s`:显示文件的大小 - `-v`:显示`stat`命令的版本信息 例如,以下命令显示文件`file.txt`的状态信息: ``` $ stat file.txt File: file.txt Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 131074 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ group) Access: 2021-08-20 14:00:00.000000000 +0800 Modify: 2021-08-20 14:00:00.000000000 +0800 Change: 2021-08-20 14:00:00.000000000 +0800 Birth: - ``` 其,`Access`表示最近一次访问时间,`Modify`表示最近一次修改时间,`Change`表示最近一次状态变化时间,`Uid`表示文件所有者的用户ID,`Gid`表示文件所有者所在的组ID,`Size`表示文件大小,`Access`表示文件的访问权限,`Inode`表示文件的inode号,`Links`表示文件的硬链接数等等。 如果需要显示指定的状态信息,可以使用`-c`参数指定自定义输出格式,例如以下命令只显示文件的大小和最近一次修改时间: ``` $ stat -c "Size: %s bytes\nModified: %y\n" file.txt Size: 0 bytes Modified: 2021-08-20 14:00:00.000000000 +0800 ``` 其,`%s`表示文件大小,`%y`表示最近一次修改时间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值