例如,我有两个文件
-rw-rw---- 1 1000 1000 5 Sep 28 01:25 file1
-rw-rw---- 1 1000 1000 13 Sep 28 01:25 file2
之后echo "asdfg" >> file1
(file1 内容被修改)
-rw-rw---- 1 1000 1000 11 Sep 28 01:25 file1
-rw-rw---- 1 1000 1000 13 Sep 28 01:25 file2
并且chmod 770 file2
(file2 元数据已更改)
-rw-rw---- 1 1000 1000 11 Sep 28 01:25 file1
-rwxrwx--- 1 1000 1000 13 Sep 28 01:25 file2
运行find . -mmin -5
5分钟,结果符合预期,因为只有file1被修改
./file1
尝试了一下find . -cmin -5
,然后我得到了这个
./file2
./file1
请帮我如何find
列出仅更改权限的那个?
答案1
如果每个情况下的时间戳都正确,则看起来距离您创建文件的时间仍不到五分钟,这意味着 ctime 测试会因此触发。值得注意的是,当您编辑文件 1 时,其时间戳不会改变,这表明编辑发生在创建(或上次编辑)的同一分钟内。
您的语法似乎是正确的。以下是我的系统 (RHEL 7.4) 中的一个简单示例,带有时间戳以说明:
[testuser@dc0sandbox01 ~]$ date
Thu Sep 28 10:36:53 CEST 2017
[testuser@dc0sandbox01 ~]$ touch file1
[testuser@dc0sandbox01 ~]$ touch file2
[testuser@dc0sandbox01 ~]$ find . -cmin -1
.
./file1
./file2
[testuser@dc0sandbox01 ~]$ date
Thu Sep 28 10:37:09 CEST 2017
(wait for a minute)
[testuser@dc0sandbox01 ~]$ date
Thu Sep 28 10:38:11 CEST 2017
[testuser@dc0sandbox01 ~]$ find . -cmin -1
[testuser@dc0sandbox01 ~]$ chmod 660 file1
[testuser@dc0sandbox01 ~]$ find . -cmin -1
./file1
[testuser@dc0sandbox01 ~]$ date
Thu Sep 28 10:38:26 CEST 2017
如果仍然有问题,请尝试使用 stat 命令显示有关每个文件的详细信息:
[testuser@dc0sandbox01 ~]$ stat file1
File: ‘file1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd02h/64770d Inode: 286973 Links: 1
Access: (0660/-rw-rw----) Uid: (10131/testuser) Gid: (10131/testuser)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2017-09-28 10:36:56.331274189 +0200
Modify: 2017-09-28 10:36:56.331274189 +0200
Change: 2017-09-28 10:38:21.872727064 +0200
Birth: -