Linux 文件搜索命令

时间:2021-09-12 16:31:02

文件搜索命令locate
命令搜索命令 whereis which
文件搜索命令 find 会搜索所有文件
字符串搜索命令grep
find命令与grep命令的区别


locate 文件名 (只能搜索文件名)
在后台数据库中按文件名搜索,搜索速度更快

locate install.log

/var/lib/mlocate 存放着文件名的数据
#locate命令所搜索的后台数据库

如果有新创建的 只要执行更新以后 就可以找到了
updatedb
更新数据库

locate locate

touch /tmp/zp
updatedb
locate zp //找不到 因为在etc配置中 locate命令 只查找了当前目录下的文件名

vi /etc/updatedb.conf 查看

touch 创建文件
mkdir 创建目录

vi 打开文件(使用编辑模式进入输入)
cd 打开目录

搜索命令的命令whereis
whereis 命令名
搜索命令所在路径以及帮助文档所在位置
whereis 选项
-b: 只查找可执行文件
-m: 只查找帮助文件

which 看到命令的别名和命令的所带位置

which和whereis 是外部安装的命令 不是shell自带的


安装的外部命令都是应该这样写
/bin/ls
/bin/touch

都是因为配置了环境变量
$PATH (系统搜索命令的路径)
例如 ls 会在$PATH中的配置环境变量中 查找相对应是否有这样的执行文件 执行命令
如果自己写的程序 想不打绝对路径就想执行 那就放在对于的环境变量文件目录中


find [搜索范围] [搜索条件]

find / -name install.log
#避免大范围搜索 会非常耗费系统资源
#find是在系统当中搜索符合条件的文件名 如果需要匹配 使用通配符匹配 通配符是完全匹配

模糊查询 需要使用通配符

linux中的通配符
* 匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符

find /root -name "install.log*"

find /root -iname "install.log" 不区分大小写的
find /root -user root 按照所有者搜索
find /root -nouser 查找没有所有者的文件(找到没有所有者的文件 一般是垃圾文件)
但是有2个区别点
1、是在sys和proc中的文件 该文件是由内核和内存进行交互的地方 可能会产生没有所有者的文件
2、外来文件 考到tmp中的文件 u盘 d盘等文件 是windows创建的 没有所有者

find /var/log/ -mtime +10
查找log目录下 10天前修改的文件

-10 10天内修改的文件
10 10天当天修改的文件
+10 10天前修改的文件

atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容

find . -size 25k
查找文件大小是25kb的文件

-25k 小于25kb的文件
25k 等于25kb的文件
+25k 大于25kb的文件

find . -inum 262422
查找i节点是262422的文件

. 是代表当前目录
/ 代表根目录

find /etc -size +2M
搜索etc目录下 大于2M的文件

find /root -inum 262622


find /etc -size +20 -a -size -50k
查询/etc目录下 大于20kb并且小于50kb的文件

-a and 逻辑 与 两个条件都满足
-o or 逻辑 或 两个条件满足一个即可

find /etc -size +20k -a -size -50k -exec ls -lh{}\;
查找/etc目录下 大于20kb并且小于50kb的文件,并且显示详细信息
-exec/-ok 命令{}\; 对搜索结果执行操作

find /root -inum 2626222 -exec rm -rf {} \;

-exec [其他命令] {} \; 对筛选条件进行其他命令执行的时候 一定要用-exec这个玩意

文件搜索命令
grep [选项] 字符串 文件名
在文件当中 匹配符合条件的字符串
选项:
-i 忽略大小写
-v 排除指定字符串

grep "zp" xxx.php 查询xxx.php中带有zp字符的行内容
grep -v "zp" xxx.php 查询xxx.php中不带zp字符的行内容(会很多)
grep -i "zp" xxx.php 查询xxx.php中 不区分大小写的zp的行内容


find命令:在系统当中搜索符合条件的文件名
grep命令:在文件当中搜索符合条件的字符串