Linux 文件搜索命令

时间:2021-11-23 09:57:44

1 locate 命令

  locate 【搜索名】 在后台数据库中按照文件搜索,搜索速度快

  /var/lib/mlocate    所搜索的数据库位置

  updatedb 更新数据库,mlocate数据库是默认一天一次更新,使用updatedb 可以强制更新

td@td-Lenovo-IdeaPad-Y410P:~$ vi /etc/updatedb.conf

上述命令打开该数据库配置文件,得到如下信息:

  1 PRUNE_BIND_MOUNTS="yes"
  2 # PRUNENAMES=".git .bzr .hg .svn"
  3 PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs /var/lib/schroot"
  4 PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 n    cpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre tmpfs usbfs udf fuse    .glusterfs fuse.sshfs curlftpfs ecryptfs fusesmb devtmpfs"
~                                                                 

一共有4行   PRUNE_BIND_MOUNTS="yes" 表示开启搜索限制,后面三行分别表示不搜索的文件系统,不搜索的文件类型,不搜索的文件路径。

2 命令搜索命令 whereis 和which

whereis  命令名   表示所所命令所在的路径,不能查找非命令的文件或者目录

参数 -b 只查找可执行文件

参数 -m 只查找帮助文档

系统下的PATH环境变量,指的是用户自定义的命令。

td@td-Lenovo-IdeaPad-Y410P:/$ echo $PATH
/home/td/bin:/home/td/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

 3 find命令

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

find 搜索时一般指定搜索范围,以减少程序运行时间。使用find搜索文件时,如果需要匹配,则使用通配符。

× 匹配任何内容

? 匹配任何字符

[]  匹配括号中的任何一个字符

find  [搜索范围 ]   -name  文件名称     表示指定范围类使用文件名搜索文件

td@td-Lenovo-IdeaPad-Y410P:~$ find . -name abc
./abc
find: `./.cache/dconf': 权限不够
td@td-Lenovo-IdeaPad-Y410P:~$ find . -name "ab[cd]"
./abc
./abd
find: `./.cache/dconf': 权限不够

find  [搜索范围 ]   -iname  文件名称     表示指定范围类使用文件名搜索文件,忽略文件名的大小写

td@td-Lenovo-IdeaPad-Y410P:~$ ls
abc  abd  cangjk            sougou_64.deb  公共的  视频  文档  音乐
ABC  Abd  examples.desktop  workspace      模板    图片  下载  桌面
td@td-Lenovo-IdeaPad-Y410P:~$ find . -iname "ab[cd]"
./ABC
./abc
./Abd
./abd
find: `./.cache/dconf': 权限不够

find  [搜索范围]   -user  [搜索条件]  按照所有者来搜索文件

find  [搜索范围]   -nouser  [搜索文件]   按照非所有者搜索文件

find  [搜索范围]   -size  [搜索文件]   按照文件大小搜索文件

-a  表示 and,逻辑与

-o  表示or ,逻辑或

-exec/-ok  命令 {} \; 表示对搜索结果执行命令操作

td@td-Lenovo-IdeaPad-Y410P:~$ find . -iname "ab[cd]"
./ABC
./abc
./Abd
./abd
find: `./.cache/dconf': 权限不够
td@td-Lenovo-IdeaPad-Y410P:~$ find . -iname "ab[cd]" -exec rm -rf {} \;
find: `./.cache/dconf': 权限不够
td@td-Lenovo-IdeaPad-Y410P:~$ ls
cangjk            sougou_64.deb  公共的  视频  文档  音乐
examples.desktop  workspace      模板    图片  下载  桌面

4 grep  [选项]  字符串  文件名

选项:

 -i  指忽略大小写

 -v  指含义取反

td@td-Lenovo-IdeaPad-Y410P:~$ grep "size" abc
size -'asfa'
=size;salhk
td@td-Lenovo-IdeaPad-Y410P:~$ grep -i "size" abc
size -'asfa'
SizewiMBHN
sjSize
=size;salhk

 find与grep区别:

   find 是指在系统中搜索符合条件的文件名

  grep 是指在文件中搜索符合条件的字符串