文件搜索命令
1、PATH环境变量:定义的是系统搜索命令的路径(如下所示)
[root@localhost~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
如果你自己写的程序执行时不想打绝对路径,就可以将其地址放在PATH环境变量中(其中‘:’是分隔符)
2、文件搜索命令locate
a) locate 文件名:在后台数据库中按文件名搜索,搜索速度更快
b) /var/lib/mlocate:#locate命令所搜索的后台数据库(不是实时更新的,大致为一天一更,所以你当天新建的文件可能找不到,这时候就可以updatedb)(不同Linux版本的数据库可能名字不同,不一定叫mlocate,可以用locate locate命令进行确认)
c) updatedb:更新数据库
d) /etc/updated.conf配置文件
i. PRUNE_BIND _MOUNTS= "yes"(开启搜索限制)
ii. PRUNEFS =(搜索时,不搜索的文件系统)
iii. PRUNENAMES=(搜索时不搜索的文件类型)
iv. PRUNEPATHS=(搜索时不搜索的路径)
3、命令搜索命令whereis与which
a) whereis格式:whereis 命令名
i. whereis只能搜索系统命令,搜索命令所在路径及帮助文档所在位置
ii. 选项:
1. -b:只查找可执行文件
2. -m:只查找帮助文件
b) which:能看到命令所在位置和对应的别名
c) 不是所有的命令都能找到:比如cd的可执行文件是找不到的(因为是Shell自带的)
4、文件搜索命令find
a) 格式:find [搜索范围] [搜索条件] //搜索文件
b) find / -name install.log
i. 应避免如上的大范围搜索,会非常耗费系统资源
ii. find是在系统当中搜索符合条件的文件名。如果需要匹配使用通配符匹配,通配符是完全匹配。
c) Linux中的通配符
i. *:匹配任意内容
ii. ?:匹配任意一个字符
iii. []:匹配任意一个中括号内的字符
d) find /root -iname [文件名] //不区分大小写
e) find /root -user [所有者] //按照所有者搜索
f) find /root -nouser //查找没有所有者的文件
g) 如果是内核产生的文件或外来数据(u盘等)可能没有所有者,剩下的所有文件应该都有所有者,否则为垃圾文件。
h) find /var/log/ -mtime +10 //查找日志log中10天前修改的文件
i. -10:10天内修改的文件
ii. 10:10天当天修改的文件
iii. +10:10天前修改的文件
iv. atime:文件访问时间
v. ctime:改变文件属性
vi. mtime:修改文件内容
i) find . –size 25k //查找文件大小是25KB的文件
i. k是小写,M必须是大写!
ii. -25k:小于25KB的文件
iii. 25k:等于25KB的文件
iv. +25k:大于25KB的文件
j) find . –inum 262422 查找i节点是262422的文件
k) find /etc -size +20k -a -size -50k
i. 查找/etc/目录下,大于20KB并且小于50KB的文件
ii. -a:and 逻辑与,两个条件都满足
iii. -o:or 逻辑或,两个条件满足一个即可
l) find /etc -size +20k -a -size -50k -exec ls -lh {}\;
i. 查找/etc/目录下大于20KB并且小于50KB的文件,并显示详细信息
ii. -exec /-ok 命令 {} \; ///-ok 命令为对前面得到的结果可执行的命令,如k)项中的ls -lh。其余部分为固定结构。
5、搜索字符串命令grep
a) 格式:grep [选项] 字符串 文件名
b) 结果:在文件当中匹配符合条件的字符串
c) 选项:
i. -i:忽略大小写
ii. -v:排除指定字符串
6、find命令和grep命令的区别
a) find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
b) grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配。
c) 通用规则:
i. 使用通配符:如果匹配和搜索的是文件的文件名称
ii. 使用正则表达式:如果匹配和搜索的是文件当中的内容或数据
转载请注明原文地址: https://ju.6miu.com/read-2487.html