2.2 文件搜索命令

文件搜索命令:locate

locate 文件名                
  (优点:在后台数据库中按文件名搜索,搜索速度更快   缺点:只能按文件名搜索)
并不是在系统里搜索,而是在/var/lib/mlocate这个目录下进行搜索,这是locate命令所搜索的后台数据库,但是这个数据库不是实时更新的,一天一更新
执行updatedb强制更新数据库,假设在不同的目录创建相同名字的文件或者目录,有可能不能搜索全部出来,原因是因为updatedb.conf配置文件中有些目录是locate不会进行搜索的
Prune_BIND_MOUNTS=”yes”        开启搜索限制
PRUNEFS=                                              搜索时,不搜索的文件系统        
PRUNENAMES=                                    搜索时,不搜索的文件类型        
PRUNEPATHS=                                      搜索时,不搜索的路径         

命令的搜索命令:whereis与which

1.命令:whereis [命令名](搜索系统命令所在路径以及帮助文档所在位置)
选项:
-b:只查找可执行文件
-m:只查找帮助文件
例:搜索ls命令,命令:whereis ls。如果输入“whereis -b ls”,只会显示红字。如果输入“whereis -m ls”,则只会显示黄字。
ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz
2.命令:which [命令名](搜索系统命令所在路径和查看到命令的别名)
注意:whereis和which不能搜索shell(当前系统界面叫做shell)的默认命令(如:cd),只能搜索外部安装的命令。
3.环境变量$PATH:定义系统搜索命令的路径。whereis和which搜索命令的路径是依赖PATH所定义的路径。Linux执行命令的时候都要在path定义的目录中去寻找。
系统命令不需要打绝对路径,如:ls这样的命令就可以不用加路径(/bin/ls)执行。如果是自己写的脚本或者自己写的程序,就需要打绝对路径,或者在$PATH中设置。
命令:echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

文件搜索命令:find

1.搜索文件命令:find [搜索范围] [搜索条件]
	特点:非常强大,但耗费系统资源,卡慢,因此需避免大范围的搜索。
	例:find / -name install.log
	注意:find搜索默认是完全匹配,如果需要匹配,需使用通配符匹配。
	2.Linux中的通配符
	*:匹配任意内容
	?:匹配任意一个字符
	[]:匹配任意一个中括号内的字符。
	例:find /root -name "install*",即搜索文件名以install开头的文件。
	find /root -name "ab[cd]",即搜索文件名abc和abd的文件。
	find /root -name "*[cd]",即搜索文件名以c结尾或以d结尾的文件。
	3.其他命令选项
	find /root -iname install.log:不区分“install.log”的大小写。
	find /root -user install.log:按照所有者搜索。
	find /root -nouser install.log:查找没有所有者的文件。对于Linux来讲,所有的文件都应该有所有者,但如果是内核产生的文件,如proc和sys文件夹,有可能没有所有者,以及外来文件,如插入的U盘。
	find /root  -mtime +10:查找10天前修改的文件。
	find /root  -mtime -10:10天内修改的文件。
	find /root  -mtime 10:10天当天修改的文件。
	find /root  -mtime +10:10天前修改的文件。
	find /root -size 25k:查找文件大小为25kb的文件。
	find /root -size -25k:查找文件大小小于25KB的文件。
	find /root -size +25k:查找文件大小大于25KB的文件。
	注意:k要小写,M要大写。如果不写单位:find /root -size 25,即以数据块(扇区)为单位。
	find /root -inum 262422:查找i节点是252422的文件。
	find /root -size +20k -a -size -50k:查找/root目录下,大于20KB并且小于50KB的文件。
	选项:
	-a :and 逻辑与,两个条件都满足。
	-o :or 逻辑或,两个条件满足一个即可。
	find /etc -size +20k -a -size -50k -exec ls -lh {} \;
	查找/etc目录下,大于20KB并且小于50KB的文件,并显示详细信息。
	find /root -inum 262421 -exec rm -rf {} \;
	查找/root目录下,i节点为262421的文件,并进行删除。
	选项:
	-exec [命令] {} \;:固定格式,对搜索结果执行操作。

字符串搜索命令:grep

grep [选项] 字符串 文件名(在文件当中匹配符合条件的字符串)
选项:
-i:忽略大小写
-v:排除制定字符串
例:grep "size" anaconda-ks.cfg,即搜索anaconda-ks.cfg文件中包含“size”的内容。

2.find命令与grep命令的区别
find:在系统中搜索符合条件的文件名,使用 通配符(完全)匹配。
grep:在文件当中搜索符合条件的字符串,使用 正则表达式 (包含)匹配。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值