Liunx中文件的三个时间atime,mtime,ctime详细说明与使用场景
导航:
一、文件与文件夹三个时间:atime,mtime,ctime 的含义
二、stat 命令查看文件的时间
三、ll 命令查看文件时间
四、测试创建 / 修改文件的时间
五、常用命令关于文件时间相关
- - - - - - - - - - 分割线 - - - - - - - - - -
一、文件与文件夹三个时间:atime,mtime,ctime 的含义
1. 含义
atime(Access Time):文件最近被访问时间
mtime(Modify Time):文件最近内容修改时间
ctime(Change Time):文件最近权限和属性修改时间
2. 文件的触发 time 修改的情况
atime(Access Time):在读取文件或者执行文件时更改的任何对 inode 的访问都会使此处改变
mtime(Modify Time):在写入文件时随文件内容的更改而更改的
ctime(Change Time):在写入文件、更改所有者、权限或链接设置(更改状态)时随 Inode 的内容更改而更改的
3. 文件夹触发 time 修改的情况
atime(Access Time):读取文件或者执行文件时更改的(cd 不会 ls 会改变)
mtime(Modify Time):在文件夹中有文件的新建才会改变,注意使用 vi 在文件夹内新建文件即使退出时也会变化 mtime,而只更改文件夹内文件内容不会修改文件夹的 mtime
ctime(Change Time):ctime 基本同文件的 ctime,其体现的是 inode 的 change time
4. 注意事项,mtime 与 ctime
mtime 的改变必然导致 ctime 的改变,但是 ctime 不一定导致 mtime 的更改
二、stat 命令查看文件的时间
stat test001.txt
三、ll 命令查看文件时间(对照 stat 命令可验证)
1. 默认显示 mtime
ll test001.txt #默认显示 mtime
2. 展示 ctime
ll --time=ctime test001.txt #展示 ctime
3. 展示 atime
ll --time=atime test001.txt #展示 atime
四、测试创建 / 修改文件的时间
假定目前的时间是:2022-10-05 13:15:40
date "+%Y-%m-%d %H:%M:%S"
1. 创建文件后测试,文件 atime、ctime、mtime 均一样
touch test001.txt
stat test001.txt
2. 修改文件后查看,文件 atime 不变,ctime、mtime 更新
echo 123 > test001.txt
stat test001.txt
3. 更改文件属主后: 文件 atime、mtime 不变,ctime 更新
chown -R root:root test001.txt
stat test001.txt
4. 创建文件夹,文件 atime、ctime、mtime 均一样
mkdir test001mdr
stat test001mdr
5. 文件夹内新建文件,文件夹 atime 不变,ctime 与 mtime 均发生改变
vi test001mdr/test001.txt
stat test001mdr
6. 修改文件夹的属主,文件夹的 atime、mtime 不变,ctime 更新
chown -R root:root ./test001mdr
stat test001mdr
五、常用命令关于文件时间相关 (24h 为一天前时间节点,0 为当前时间)
1. 在当前目录下查询 3 天内修改过的文件(72h~0)
find . -mtime -3 #查询 3 天内修改过的文件
2. 在当前目录下查询 1 天内访问过的文件(24h~0)
find . -atime -1 #查询 1 天内访问过的文件
3. 查找 50-100 天修改过的文件(100d~50d)
find / -mtime +50 -mtime -100 #查找 50-100 天修改过的文件
4. 查找过去 1 小时内更改过的文件(60min~0)
find . -mmin -60 #过去 1 小时内更改过的文件
5. 查找前一天修改过的文件(48h~24h)
find . -mtime 1 #查找前一天修改过的文件(48h~24h)
6. 查找一天前修改过的文件(~48h)
find . -mtime +1 #查找一天前修改过的文件(~48h)
7. 查找早于指定日期修改的文件(~=day)
find . -newermt 2022-10-04 #查找早于指定日期(包含)修改的文件
8. 查找 24 小时内修改的文件(24h~0)
find . -newermt '-24hours' #查找 24 小时内修改的文件
9. 查找 10 分钟之内修改过的文件(10min~0)
find /home/ -type f -newermt '-10 minutes' #查找 10 分钟之内修改过的文件
10. 查找 1 天之内修改过的文件(24h~0)
find . -newermt '1 day ago' #查找 1 天之前到现在修改的文件
11. 查找昨天到现在修改的文件 - 同上(24h~0)
find . -newermt 'yesterday' #查找昨天到现在修改的文件
出处:https://www.cnblogs.com/mrwhite2020/p/16754506.html