Linux常用命令介绍(搜索命令)

一、文件搜索命令

1.1 文件搜索命令locate

在后台数据库中按文件名搜索,只可以搜索文件名,搜索功能简单,但搜索速度快,命令格式为:

locate [文件名]

问题一:centOS系统找不到locate命令

locate: command not found

解决方法:
原因是系统中没有安装mlocate这个包。
* 第一步:安装mlocate包

yum -y install mlocate

会出现下面正在安装该包的信息,等待一会,直到出现Complete!就表示安装完成了。

* 第二步:更新数据库

updatedb
* 第三步:就可以使用locate命令了

[root@localhost ~]# locate install.log
/root/install.log
/root/install.log.syslog

问题二:当在某些目录下创建文件,然后更新数据库之后,并不能用locate命令查找到

原因是系统在更新数据库的配置文件中,设置了一些搜索限制,所以搜索不到,输入如下命令可以看到:

[root@localhost ~]# vi /etc/updatedb.conf

PRUNE_BIND_MOUNTS = "yes"
PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs"
PRUNENAMES = ".git .hg .svn"
PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp"
/etc/updatedb.comf配置文件
  • PRUNE_BIND_MOUNTS = “yes” 表示开启搜索限制,如果为’no’则表示不开启搜索限制;
  • PRUNEFS = 表示搜索时,不搜索的文件系统;
  • PRUNENAMES = 表示搜索时,不搜索的文件类型;
  • PRUNEPATHS = 表示搜索时,不搜索的路径;
    不只locate命令遵循搜索限制,whereis与which也遵循

1.2 whereis与which命令

whereis与which命令是用来搜索命令的

whereis [命令]
查看命令所在的地址

1.3 find命令

find命令功能强大,而且搜索范围广,搜索速度相对较慢。一般都精确查找,只有加上通配符之后才能进行模糊查找。命令格式如下:

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

[搜索条件]有如下几种:

1. 举例

find /home/ -name test
查找名为’test’的文件文件或目录

  • -name 文件或目录名称

名称中可以使用通配符
* * 匹配任意内容
* ? 匹配任意一个字符
* [] 匹配任意一个中括号内的字符

2. 举例:

find /var/log/ -mtime +10
表示查找10天前修改的文件

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

其中:
* -10 10天内修改的文件
* 10 10天当天修改的文件
* +10 10天前修改的文件

3. 举例

find . -size 25k
查找所有文件大小为25KB的文件

  • -25k 小于25KB的文件
  • 25k 等于25KB的文件
  • +25k 大于25KB的文件
4. 举例

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

5. 举例

find /etc -size +20k -a -size -50k

查找/etc目录下大于20K并且小于50K的文件或者目录

  • -a 逻辑与,两个条件都满足
  • -r 逻辑或,两个条件满足一个即可
6. 举例

find /etc -size +20k -a -size -50k -exec ls -l {} \

查找/etc目录下大于20K并且小于50K的文件或者目录,并且显示文件的详细信息

  • -exec ** {} \ 表示对搜索结果执行相应的操作;
7. 举例

find /root -iname install.log

文件名称不区分大小写;

8. 举例

find /root -user root

查找所有者为root的文件

9. 举例

find /root -nouser

查找没有所有者的文件

1.4 grep命令

指在文件中匹配符合条件的字符串,格式如下:

grep [选项] 字符串 文件名

[选项]:
* -i 忽略大小写
* -v 排除指定字符串

[root@localhost ~]# cat /home/zixuan/learn/test.hard
this is a test file;
111111
111111
those are there
[root@localhost ~]# grep "th" /home/zixuan/learn/test.hard
this is a test file;
those are there
[root@localhost ~]# grep -v "th" /home/zixuan/learn/test.hard
111111
111111
find命令与grep命令的区别
  • find命令:在系统当中搜索符合条件的文件名,如果需要匹配使用通配符匹配,并且通配符是完全匹配;
  • grep命令:在文件当中搜索符合条件的字符串,如果需要匹配使用正则表示式进行匹配,并且正则表达式是包含匹配;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值