在使用Linux的时候,很多时候需要在整个文件系统中寻找某个特定的文件,这里我们可以使用两个常用的命令
locate:依靠每天所更新的数据库文件来查找,效率高但是不能查找到最近一天更新的文件
find:实时查找,效率低于locate但是灵活性更高
我平时喜欢使用的find,所以简单介绍一下find的使用
find命令是根据特定的条件在整个文件系统中查找文件,几乎所有的文件属性都可以作为find命令的搜索条件,比如:文件名、大小、修改时间、链接数等等,但是却不能根据文件内容来查找,我们却有别的办法->结合grep命令来根据内容查找。
find命令的基本语法:
起始目录、搜索条件、动作
find<起始目录> <搜索条件> <动作>
默认起始目录是(.),默认搜索条件是所有文件,默认动作是打印文件名
指定条件查找
选项
-empty 空文件或者空目录
-group gname 组所有者是gname
-inum n i-节点是号是n
-links n 链接数是n
-mmin n n分钟之前修改的文件
-mtime n n天前修改的文件
-name pattern 与pattern模式匹配
-newer filename 查找的文件最后修改时间在filename最后修改时间之后(比filename“新”的文件)
-perm mode 权限是mode的权限
-perm -mode 具有mode指定的权限
-perm +mode 至少有一个mode指定的权限
-size n 大小是n
-type c 类型为c
-user uname 所有者是uname
.....
最后介绍三种有关文件的信息
atime:访问时间
ctime:改变时间
mtime:修改时间
这些涉及到有关i-节点的问题先不管,先介绍这三种信息
改变(change)和修改(modify)的区别:
当一个文件的数据被修改时 mtime得到更新 仅仅是访问一个文件(atime改变)也会改变ctime
当一个文件的i-节点改变时 就说该文件被改变了 ctime得到更新,改变mtime的时候ctime也会更新