Linux上的文件搜索命令实例详解

locate

基础了解

在centos7上默认没有locate命令,需要先手动安装。安装步骤:http://www.cnblogs.com/feanmy/p/7676717.html

locate命令搜索的后台数据库路径:/var/lib/mlocate/mlocate.db

ls -hl /var/lib/mlocate
total 1.2M
-rw-r----- 1 root slocate 1.2M Oct 16 14:36 mlocate.db

更新数据库使用updatedb,配置文件为/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 fuse.sshfs 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 /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/spool/cups /var/spool/squid /var/tmp"

命令选项

了解一个命令可以使用man,如 man locate,可以显示locate相关的选项。这里只介绍几个常用选项
-c, --count            只输出找到的数量
-i, --ignore-case      忽略大小写
-q, --quiet            安静模式,不会显示任何错误讯息
-r, --regexp REGEXP    使用基本正则表达式
    --regex            使用扩展正则表达式
-n                     结果中显示n个文件

使用示例

1、locate /etc/pro :查询出/etc目录下所有以pro开头的文件

locate /etc/pro
/etc/profile
/etc/profile.d
/etc/protocols
/etc/profile.d/256term.csh
/etc/profile.d/256term.sh
/etc/profile.d/colorgrep.csh
/etc/profile.d/colorgrep.sh
/etc/profile.d/colorls.csh
/etc/profile.d/colorls.sh
/etc/profile.d/lang.csh
/etc/profile.d/lang.sh
/etc/profile.d/less.csh
/etc/profile.d/less.sh
/etc/profile.d/vim.csh
/etc/profile.d/vim.sh
/etc/profile.d/which2.csh
/etc/profile.d/which2.sh

2、locate -c /etc/pro :显示匹配到的文件数

locate -c /etc/pro
17

3、locate -i topoftencent.class.php :忽略文件名大小写

locate -i topoftencent.class.php
/var/www/html/fxyxManage/Spider/TopOfTencent.class.php

虽然文件名大小写不一致,但使用-i选项依然能匹配出

find

基础了解

使用find进行文件查找的速度要慢于locate,但是功能及参数要强于locate。在使用find时,要避免大范围的搜索

命令选项

这里介绍常用选项,其他选项可通过man find了解

-name  filename       #查找名为filename的文件
-iname filename       #查找文件filename,不区分大小写
-gid  n           #查找属组gid为n的文件
-user  username       #按文件属主来查找
-group  groupname      #按组来查找
-mtime  -n +n        #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime  -n +n        #按文件访问时间来查GIN: 0px">
-ctime  -n +n        #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup           #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser            #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer  f1 !f2        #查更改时间比f1新但比f2旧的文件
-type             #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size   n[c]        #查长度为n块[或n字节]的文件

使用示例

1、find /etc  -name profile:在/etc目录下查找名为profile的文件

[root@iZwz985sjvpojho4jlms7lZ ~]# find /etc -name profile
/etc/profile

2、find / -user mysql :在根目录下查找属主为mysql的文件

[root@iZwz985sjvpojho4jlms7lZ ~]# find / -user apache
/proc/29936/task
/proc/29936/task/29936
/proc/29936/task/29936/attr
/proc/29936/net
/proc/29936/attr
/proc/29937/task
/proc/29937/task/29937
/proc/29937/task/29937/attr
/proc/29937/net
/proc/29937/attr
......

查看/proc/29936/task的文件属性

[root@iZwz985sjvpojho4jlms7lZ ~]# ll /proc/29936/task
total 0
dr-xr-xr-x 6 apache apache 0 Oct 16 14:12 29936 # 属主为apache

3、find /var/lib  -group apache : 在/var/lib下根据属组apache查找文件

[root@iZwz985sjvpojho4jlms7lZ ~]# find /var/lib -group apache
/var/lib/dav
/var/lib/php/session
/var/lib/php/session/sess_7vtaesehg11f45ljrsh98k3s57
/var/lib/php/session/sess_uubh9p4tvc1mohopepndg9m3d3
/var/lib/php/session/sess_aovaqofcs4918vsl0mhquf79a7
/var/lib/php/session/sess_pm8lgnn78c9jh54umjnk0gsu14
/var/lib/php/session/sess_i1tc9i6n0chddlfp250oqun8f2
/var/lib/php/session/sess_2c1vrgb6lqgifg7lruaoq5u6s2
/var/lib/php/session/sess_3vc0gbkpl1m4hb2h5mr7nbgvk4
/var/lib/php/session/sess_rditv2odgr4vg7jmdu8sfvdm90
/var/lib/php/session/sess_a6m2fkh0cel9uf7tqo48qmphs5
/var/lib/php/session/sess_eierot422pov01ognbjo2dkqv1
/var/lib/php/session/sess_1ei3jbop7osama4m375qrsqqc5
/var/lib/php/session/sess_vovl6rrmb66a570dncpgp49p22
/var/lib/php/session/sess_6ef5d9r6fhatqie8apr28odgn0
/var/lib/php/session/sess_1o1rv6o963v3nr5sdui3hodll0

4、find /var/www -mtime -2 : /var/www目录下在2天以内修改过的文件

[root@iZwz985sjvpojho4jlms7lZ ~]# find /var/www -mtime -2
/var/www/html/fxyxManage/Application/Runcache/Cache/Admin/b595b808c2ebeeeb0478ffc30bb4e87a.php
/var/www/html/fxyxManage/Application/Runcache/Cache/Admin/e82f9209c88dd6a459bf8b3d6299d38c.php
/var/www/html/fxyxManage/Application/Runcache/Cache/Admin/dfa8fa69d0f81d1ba09048823f5e779b.php
/var/www/html/fxyxManage/Application/Runcache/Cache/Admin/3fd17d8cbb99d40eed8370916fbba7bf.php
/var/www/html/fxyxManage/Application/Runcache/Cache/Admin/32ec6c906c117a7c2bf504769276d87a.php
/var/www/html/fxyxManage/Application/Runcache/Logs/Weixin

选项-atime、-ctime的用法同-mtime

5、find /etc/httpd -type d:查找/etc/httpd下的目录,-type根据文件类型查找

[root@iZwz985sjvpojho4jlms7lZ ~]# find /etc/httpd -type d
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.modules.d
/etc/httpd/conf.d

6、find /var/www -iname topoftencent.class.php :开启不区分文件名大小写查找

[root@iZwz985sjvpojho4jlms7lZ ~]# find /var/www -iname topoftencent.class.php
/var/www/html/fxyxManage/Spider/TopOfTencent.class.php

7、find /var/lib/mysql -gid 27:查找属组id为27的文件

[root@iZwz985sjvpojho4jlms7lZ ~]# find /var/lib/mysql -gid 27
/var/lib/mysql/auto.cnf
/var/lib/mysql/ibdata1
/var/lib/mysql/ib_logfile0
/var/lib/mysql/performance_schema
/var/lib/mysql/performance_schema/accounts.frm
/var/lib/mysql/performance_schema/threads.frm
......

总结

以上所述是小编给大家介绍的Linux上的文件搜索命令实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • linux文件搜索及其它基础命令介绍(3)

    1.linux中包含大量的文件,对于文件查找,linux提供了find命令. find是一个非常有效的工具,它可以遍历目标目录甚至整个文件系统来查找某些文件或目录: find [path...] [expression] 其中expression包括三种:options.tests和actions.多个表达式之间被操作符分隔,当操作符被省略时,表示使用了默认操作符-and. 当表达式中不包含任何actions时,默认使用-print,也就是打印出搜索到的所有文件,用换行分隔. 其实可以将三种表达

  • Linux中的搜索文件命令

    文件搜索命令locate:搜索快,新建文件无法搜索: 命令格式: locate 文件名  //在后台数据库中按文件名搜索,搜索速度快: /var/lib/mlocate : locate命令所搜索的后台数据库 命令:updatedb // 更新数据库,默认是一天自动更新: /etc/uodatedb.conf 配置文件中: 1.      PRUNE_BIND_MOUNTS = "yes" 开启搜索限制 2.      PRINEFS = 搜索时,不搜索的文件系统: 3.      P

  • 使用Linux正则表达式灵活搜索文件中的文本

    正则表达式是一种符号表示法,用于识别文本模式.Linux处理正则表达式的主要程序是grep.grep搜索与正则表达式匹配的行,并将结果输送至标准输出. 1. grep匹配模式 grep按下述方式接受选项和参数(其中,regex表示正则表达式) 复制代码 代码如下: grep [options] regex [files] 其中options主要为下表: 选项 含义 功能描述 -i ignore case 忽略大小写 -v invert match 不匹配匹配的 -l file-with-matc

  • Linux上的文件搜索命令实例详解

    locate 基础了解 在centos7上默认没有locate命令,需要先手动安装.安装步骤:http://www.cnblogs.com/feanmy/p/7676717.html locate命令搜索的后台数据库路径:/var/lib/mlocate/mlocate.db ls -hl /var/lib/mlocate total 1.2M -rw-r----- 1 root slocate 1.2M Oct 16 14:36 mlocate.db 更新数据库使用updatedb,配置文件为

  • Linux 中常用的Rpm命令实例详解

    rpm命令是RPM软件包的管理工具.rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采用.RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度. 语法 rpm(选项)(参数) 选项 -a:查询所有套件: -b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称: -c:只列出

  • Android编程之在SD卡上进行文件读写操作实例详解

    本文实例讲述了Android编程之在SD卡上进行文件读写操作的方法.分享给大家供大家参考,具体如下: 很多知识只有真正理解掌握之后才能运用自如,举一反三.对Java中的文件操作和android系统SD卡里面的文件操作,你觉得有区别吗,显然没有本质区别,如果勉强说有,那也是不足为道滴,但我们在实际运用中却要注意如下几点,不然问题会缠上你. 1.首先想要对android系统SD卡里文件操作需要添加使用权限: android系统是不会让外来程序随意动自己内存的,如果没有许可证,不好意思,不准你动我地盘

  • Android实现上传文件到服务器实例详解

    本实例实现每隔5秒上传一次,通过服务器端获取手机上传过来的文件信息并做相应处理:采用Android+Struts2技术. 一.Android端实现文件上传 1).新建一个Android项目命名为androidUpload,目录结构如下: 2).新建FormFile类,用来封装文件信息 package com.ljq.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExce

  • vue中实现上传文件给后台实例详解

    FormData 对象的使用: 1.用一些键值对来模拟一系列表单控件:即把form中所有表单元素的name与value组装成 一个queryString 2. 异步上传二进制文件. (ps:说白了就是不使用form表单实现form表单提交数据或文件,如果还是不懂,请自行百度) 实现过程 1.使用type类型为file的input框实现选择文件(顺便记录一下修改input框的默认样式) 2.修改input框的默认样式 3.通过选择文件拿到数据 4.请求接口 以上就是本次关于vue中实现上传文件给后

  • 使用Spring boot + jQuery上传文件(kotlin)功能实例详解

    文件上传也是常见的功能,趁着周末,用Spring boot来实现一遍. 前端部分 前端使用jQuery,这部分并不复杂,jQuery可以读取表单内的文件,这里可以通过formdata对象来组装键值对,formdata这种方式发送表单数据更为灵活.你可以使用它来组织任意的内容,比如使用 formData.append("test1","hello world"); 在kotlin后端就可以使用@RequestParam("test1") greet

  • linux less命令实例详解

    less 文件名 查看文件 less 文件名 | grep -n 查找内容 根据内容过滤显示,并显示行号 less +行号g 文件名 查看文件,并定位到某行 d  向下翻页 u 向上翻页 g 跳到首行 G 跳到底部 ? 查找内容 向上查找 / 查找内容  向下查找 n 下一个 N 上一个 q 退出less命令 下面是具体栗子: 1.打开文件 less catalina.out 2.查看文件,并显示行号 less -N catalina.out 3.定位到某行(这里定位到第10行) less +1

  • Linux基础命令last 命令实例详解

    Linux last命令用于显示系统开机以来获是从每月初登入者的讯息. 使用权限:所有使用者. last 显示以前登录过的用户信息,last指令会搜索/var/log/wtmp文件(或者是经过-f选项指定的文件),然后列出文件中所有的用户信息.如果执行last指令时提示"last /var/log/wtmp∶ NO such file or directory",则需要使用指令touch /var/log/wtmp手工创建此文件 lastb指令用来显示登录失败的用户信息,其用法和las

  • linux 查看端口占用命令实例详解

     linux 查看端口占用命令实例详解 端口是系统非常重要的一个东东,我们经常需要查看哪个进程占用了哪个端口,或者哪个端口被哪个进程占用.废话不多说,直接上干货,教大家怎样查看系统端口占用情况. 方法一: 1.先用ps -ef | grep xxx(某个进程),可以查看某个进程的pid. 2.再用netstat -anp | grep pid号,可以查看到该进程占用的端口号! 方法二: 直接用lsof命令可以查看端口使用情况! 以上就是对linux 查看端口占用命令的讲解,如有疑问请留言,或者到

  • Linux中mysqldump命令实例详解

    mysqldump是mysql数据库中备份工具,用于将MYSQL服务器中的数据库以标准的sql语言的方式导出,并保存到文件中. 语法: mysqldump (选项) 选项: --add-drop-table :在每个创建数据表语句前添加删除数据库的语句  --add-locks:备份数据库表时锁定数据库表  --all-databases:备份mysql服务器上的所有数据库  --comments:添加注释信息  --compact:压缩模式,产生更少的输出  --complete-insert

随机推荐