linux下文件搜索命令有:locate、whereis、find,其中功能最强大的是find命令,使用频率也最高。
find命令常用的几个匹配符包括:
* 表示匹配任意内容
? 表示匹配任意一个字符
[ ] 表示匹配任意一个中括号的字符
find 【搜索范围】 【搜索条件】 【文件名】
例:使用 * 搜索相应文件
find /etc -name iptables* 表示从etc目录开始模糊搜索iptable开头的文件
find /etc -name *iptables* 表示从etc目录开始模糊搜索包含iptable的文件
例:使用?搜索相应文件
find /etc -name iptable?
表示任意匹配最后一个字符
例:使用[ ] 搜索相应文件
find /etc -name [ip] 表示匹配中括号内任意一个字符的文件
示例:查找iptables文件
find / -name iptables
表示从根目录开始搜索完全匹配iptables的文件,一字不差。
例:搜索特定时间修改的文件
find /etc -mtime -5 表示从etc目录开始搜素当前时间点~5天前修改的文件
find /etc -mtime 5 表示从etc目录开始搜素5天前的当天修改的文件
find /etc -mtime +5 表示从etc目录开始搜素5天前修改的文件
find命令的常用搜索条件:
【atime】表示文件访问时间
【ctime】表示修改文件属性
【mtime】修改文件内容
例:搜索特定大小的文件
find /etc -size +50k -a -size -100k 表示从etc目录开始搜索大于50k小于100k的文件,+ 是大于,- 是小于,-a 是and的意思
注:如果要搜索以兆为单位的文件,m要大写→M
譬如 find /etc -size +1M -a -size -2M
例:find命令的多条件查询,
find /etc -size +50k -a -size -100k -exec ls -lh {} \; 表示搜索大于50k小于100k的文件,并显示文件详细信息
搜索出来的文件大小都在50k~100k之间。