Linux Find命令

此次解释一下三个Linux文件显示的三个时间,而后展现一下find命令的各个功能linux

在linux操做系统中,每一个文件都有不少的时间参数,其中有三个比较主要,分别是ctime,atime,mtimevim

  • modification time(mtime):

   当修改文件的内容数据的时候,就会更新这个时间,而更改权限或者属性,mtime不会改变,这就是和ctime的区别windows

  • status time(ctime)

   当修改文件的权限或者属性的时候,就会更新这个时间,ctime并非create time,给个人感受更像是change time,但这么说也不彻底对,由于只有当更新文件的属性或者权限的时候才会更新这个时间,更改内容的话是不会更新这个时间的性能

  • accesstime(atime)

   当使用这个文件的时候就会更新这个时间测试

那么为何我使用vim打开一个文件的时候,atime没有改变呢?由于在我当前的版本中,有了relatime的概念,若是咱们频繁的对文件进行读取访问,就会频繁的修改atime,而后频繁的访问磁盘I/O,性能降低的很厉害,说实话,慢!用了relatime参数以后,除非atime早于mtime或者ctime,不然atime不会被更新操作系统

悲剧,中文的linux三个时间都翻译过来了。。。翻译

 

 

find指令详解,它有不少功能,很强大,实时性很强,每找一个文件都会十分老实地去磁盘中寻找,因此它又很慢。。。3d

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;

PS:[]中的是能够没有的,就是附加选项blog

-path:就是文件的路径啦递归

-option:就是下面要说明的各个参数,参数后面有的会有操做数,须要注意

-print:find命令将匹配的文件输出到标准输出。

-exec : -ok是-exec的一个选项,加上以后执行command时会询问用户

{} \:注意是反斜杠,大括号和反斜杠之间有一个空格

-;:注意!!!!分号必不可少!!!

 

  • 先来一个例子

这里显示出了我写的一个命令,快看!分号不能少(由于我总是忘记,因此多写几遍),由于ls -l自己就不会询问用户(rm命令会询问,试试rm吧),因此天然用不了-ok,当我把-ok去掉以后,就能够正常执行ls -l了,

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                      #若是遇到符号连接文件,就跟踪连接所指的文件

当有硬连接的时候就不跟踪了,下面有个实例,file_hard是硬连接,file_ln是符号连接,当我把软链接删除,就不会跟踪到./test/file这个连接文件了,证实硬连接是不能跟踪的

  • -cpio                         #对匹配的文件使用cpio命令,将他们备份到磁带设备中

在普通的查找结果以后,把该文件备份写到磁盘上。。。

  • -prune                       #忽略某个目录

 这个就不用说了吧。。。。

相关文章
相关标签/搜索