mtime,atime,ctime的区别,find命令的使用

来源:互联网 发布:node gzip压缩 编辑:程序博客网 时间:2024/05/22 15:21
含义: 
modification time (mtime):
当该档案的『内容数据』变更时,就会更新这个时间!内容数据指的是档案的内容,而不是档案的属性或权限喔! mtime的改变必然导致ctime的改变。
 status time (ctime):
当该档案的『状态 (status)』改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间啊。 
 access time (atime):
当『该档案的内容被取用』时,就会更新这个读取时间 (access)。举例来说,我们使用 cat 去读取 /etc/man.config , 就会更新该档案的 atime 了。 

mtime (modification time ):在写入文件时随文件内容的更改而更改的时间。我们用ls -l看到的时间,就是mtime
ctime (status time):是在写入文件、更改所有者、权限或链接设置时随Inode的内容更改而更改的时间。相当于ls -l –time=ctime所看到的时间
atime (access time):读取文件或者执行文件时更改的时间。也就是用ls -l –time=atime看到的时间

这里还要补充一点:mount -o noatime(mount -o remount,atime / 可以在线重新挂载根目录) 可以选择不记录文件的atime的改变,这意味着什么呢?当你创建了这个文件后这个文件的atime就定格了,除非你用touch或者touch -a强制刷新文件的atime。这样在可以在一定程度上提升文件系统的读写性能,特别是网站这种系统中在fstab里面加上noatime是个好主意 O(∩_∩)O


文件夹的 Access time,atime 是在读取文件或者执行文件时更改的(我们只cd进入一个目录然后cd ..不会引起atime的改变,但ls一下就不同了)。
文件夹的 Modified time,mtime 是在文件夹中有文件的新建、删除才会改变(如果只是改变文件内容不会引起mtime的改变,换句话说如果ls -f <directory>的结果发生改变mtime就会被刷新。这里可能有人要争论了:我进入dd这个文件夹vi了一个文件然后退出,前后ls -f <directory>的结果没有改变但是文件夹的mtime发生改变了……这点请主意vi命令在编辑文件时会在本文件夹下产生一 个".file.swp"临时文件,该文件随着vi的退出而被删除……这就导致了mtime的改变  )。
文件夹的 Change time,ctime 基本同文件的ctime,其体现的是inode的change time。
 
在当前目录和子目录下查找文件MyCProgram.c
# find . -name "MyCProgram.c"  
 
查找文件且忽略大小写
# find . -iname "MyCProgram.c" 
 
查找不包含MyCProgram.c的文件
find . -maxdepth 1 -not -iname "MyCProgram.c"

 

 
在/下3到5级子目录中查找passwd
# find / -mindepth 3 -maxdepth 5 -name passwd

 

 
查找且执行命令
find . -iname "MyCProgram.c" -exec md5sum {} \;

 

 
查找大于100m的文件
# find ~ -size +100M
 
查找小于100m的文件
# find ~ -size -100M
 
查找等于100m的文件
# find ~ -size 100M

 

 
查找目录及子目录下最大的5个文件
find . -type f -exec ls -s {} \; | sort -n -r | head -5
 
查找目录及子目录下最小的5个文件
# find . -type f -exec ls -s {} \; | sort -n  | head -5
 
查找size非零且最小的5个文件
# find . -not -empty -type f -exec ls -s {} \; | sort -n  | head -5

 

 
查找所有用户都有写权限的文件
# find . -perm -g=w -type f -exec ls -l {} \;

 

 
在/logs目录中查找更改时间在5日以前的文件并删除它们
 $ find logs -type f -mtime +5 -exec rm { }\ ;
 
查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们
$ find /var/logs -type f -mtime +7 -ok rm { }\ ;

 

 
可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来,否则匹配展开后会导致find的参数混乱
$ find . -name [A-Z]* -printhttp://www.linuxso.com/command/find.html

 

 
 
在当前目录下查找文件权限位为755的文件,即文件属主可以读、写、执行,其他用户可以读、执行的文件,可以用
 $ find . -perm 755 -print

这是别人的 我拿来参考学习的!
0 0
原创粉丝点击