查找系统中的文件

目标

  使用find和locate在挂载的文件系统中搜索文件。

名词定义

  • 搜索文件

  系统管理员需要使用工具来搜索文件系统中符合特定条件的文件。可以在文件系统层次结构中搜索文件的两个文件。

  1. locate命令搜索预生成索引中的文件名或文件路径,并即时返回结果。
  2. find命令通过爬取整个文件系统层次结构来实时搜索文件。
  • 根据名称查找文件

  locate命令根据文件的名称或路径查找文件。这种方式速度比较快,因为它是从mlocate数据库中查找这些信息。但是,该数据库不会实时更新,必须经常更新才能保持结果准确。这也意味着locate将找不到自上次数据库更新以来创建的文件。

  locate数据库会每日自动更新。不过,root用户可在任何时候通过updatedb命令来强制及时更新。

实操演示

  • 命令:locate、updatedb

语法: locate 选项

##使用locate工具查找文件
[root@sinfotek ~]# mkdir abcd
[root@sinfotek ~]# locate abcd
[root@sinfotek ~]# updatedb
[root@sinfotek ~]# locate abcd
/root/abcd
  • 命令:find

语法:find 路径 选项 参数
find / -name abcd
-name:根据文件名称查找
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去 n 天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去 n 天内创建的文件
-mtime n : 在过去 n 天内修改过的文件
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 文件类型是 c 的文件。
d: 目录
c: 字型装置文件
b: 区块装置文件
p: 具名贮列
f: 一般文件
l: 符号连结
s: socket
-pid n : process id 是 n 的文件

##查询最近N天更新的文件
[root@sinfotek ~]# find ./ -ctime 1
./.bash_history

##查询文件
[root@sinfotek ~]# find / -name abcd
/root/abcd

##查询指定时间的文件并删除
find ./ -ctime +1 -type f xargs rm -rf
文档更新时间: 2022-07-08 14:59   作者:xiubao yan