这次解释一下三个Linux文件显示的三个时间,然后展示一下find命令的各个功能
在linux操作系统中,每个文件都有很多的时间参数,其中有三个比较主要,分别是ctime,atime,mtime
- modification time(mtime):
当修改文件的内容数据的时候,就会更新这个时间,而更改权限或者属性,mtime不会改变,这就是和ctime的区别
当修改文件的权限或者属性的时候,就会更新这个时间,ctime并不是create time,给我的感觉更像是change time,但这么说也不完全对,因为只有当更新文件的属性或者权限的时候才会更新这个时间,更改内容的话是不会更新这个时间的
当使用这个文件的时候就会更新这个时间
那么为什么我使用vim打开一个文件的时候,atime没有改变呢?因为在我当前的版本中,有了relatime的概念,如果我们频繁的对文件进行读取访问,就会频繁的修改atime,然后频繁的访问磁盘I/O,性能下降的很厉害,说实话,慢!用了relatime参数之后,除非atime早于mtime或者ctime,否则atime不会被更新
悲剧,中文的linux三个时间都翻译过来了。。。
images/loading.gif' data-original="http://images2015.cnblogs.com/blog/928542/201605/928542-20160520090001044-2076920171.png" />
find指令详解,它有很多功能,很强大,实时性很强,每找一个文件都会十分老实地去磁盘中寻找,所以它又很慢。。。
find命令有很多参数,下面就用截图来一一说明
- -name filename #查找名为filename的文件,和下面的放在一张图里面了
- -perm #按执行权限来查找,使用权限查找的时候使用权限码就可以了
- -user username #按文件属主来查找
- -group groupname #按组来查找
- -mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
- -atime -n +n #按文件访问时间来查GIN: 0px">
- -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
看到这里的-n之后就理所当然的想到+n是n天之后?我仔细想了想,我怎么可能在未来创建文件。。。
找到的几乎都是同样的文件,原因是我很少去linux里面创建新的文件,而是把windows的文件直接通过磁盘共享拿过去。。。
- -nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
咱好像没有这样的文件啊
- -nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
这样的似乎也没有
- -newer f1 !f2 #查更改时间比f1新但比f2旧的文件,使用的时候要注意f1和f2前面都应该有-newer参数才行
- -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
我先建立了一个管道文件,然后搜索类型为管道文件的文件(。。。)
- -size n[c] #查长度为n块[或n字节]的文件
这个我就不截图了。。
- -depth #使查找在进入子目录前先行查找完本目录
给我的感觉而言,这个更像是遍历该文件夹下所有文件的样子,遇到子目录的时候先不进入子目录遍历,而是遍历完当前文件夹下的所有文件之后再去遍历子目录(就是子文件夹)下的文件,这样不断地递归。。。这不就是个层序遍历么?
- -fstype:查找位于某一类型文件系统中的文件,文件系统类型可在/etc/fstab中找到
这个参数是什么意思没有太理解,测试了一下什么也没有找到,我都不知道应该怎么测试他
- -mount #查文件时不跨越文件系统mount点
这个参数似乎是不允许进入子目录进行查找的,我试了一下,子目录下的文件说是查找不到
- -follow #如果遇到符号链接文件,就跟踪链接所指的文件
我是用了硬链接也跟踪出来了,是因为都可以么?
这个就好理解了,它会把所有的链接文件都找到,我还不理解linux命令顺序啥的究竟是怎么回事,也看不太懂man和help,你们嘲笑我吧
- -cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中
在普通的查找结果之后,把该文件备份写到磁盘上。。。
这个就不用说了吧。。。。
最后强烈希望各位批评指正!!我还有很多不懂得地方,指出来我会超感谢的!
原标题:Linux的find命令详解和mtime ctime atime
关键词:linux