linux中3个文件查找相关命令详解

guanbin-529 guanbin-529     2022-12-04     172

关键词:

源于:https://mp.weixin.qq.com/s/VPs-IXY6RoxbltHIxtIbng


which命令

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:

  • which  查看可执行文件的位置。

  • whereis 查看文件的位置。

  • locate   配合数据库查看文件位置。

  • find   实际搜寻硬盘查询文件名称。

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。 

1.命令格式:which 可执行文件名称 2.命令功能:which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。3.命令参数:-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。-p  与-n参数相同,但此处的包括了文件的路径。-w  指定输出时栏位的宽度。-V  显示版本信息4.使用实例:实例1:查找文件、显示命令路径 命令:which lsmod输出:

[root@localhost ~]# which pwd
/bin/pwd
[root@localhost ~]#  which adduser
/usr/sbin/adduser
[root@localhost ~]#

说明:

which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!

 

实例2:用 which 去找出 which 

命令:which which 输出:

[root@localhost ~]# which which
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot  --show-tilde‘
     /usr/bin/which
[root@localhost ~]#

说明: 竟然会有两个 which ,其中一个是 alias 这就是所谓的『命令别名』,意思是输入 which 会等於后面接的那串命令!

 

实例3:找出 cd 这个命令 

命令:which cd

输出:

 技术图片

说明:

 cd 这个常用的命令竟然找不到啊!为什么呢?这是因为 cd 是bash 内建的命令! 但是 which 默认是找 PATH 内所规范的目录,所以当然一定找不到的!

-   -   -   -   -   -   -   -

 

whereis 命令

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。 

但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。 

1.命令格式:whereis [-bmsu] [BMS 目录名 -f ] 文件名2.命令功能:whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。whereis 程序还具有搜索源代码、指定备用搜索路径和搜索不寻常项的能力。3.命令参数:-b   定位可执行文件。-m   定位帮助文件。-s   定位源代码文件。-u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。-B   指定搜索可执行文件的路径。-M   指定搜索帮助文件的路径。-S   指定搜索源代码文件的路径。4.使用实例:实例1:将和**文件相关的文件都查找出来 命令:whereis svn输出:

[root@localhost ~]# whereis tomcat
tomcat:
[root@localhost ~]# whereis svn
svn: /usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz

说明:

tomcat没安装,找不出来,svn安装找出了很多相关文件


实例2:只将二进制文件 查找出来 命令:whereis -b svn 输出:

[root@localhost ~]# whereis -b svn
svn: /usr/bin/svn /usr/local/svn
[root@localhost ~]# whereis -m svn
svn: /usr/share/man/man1/svn.1.gz
[root@localhost ~]# whereis -s svn
svn:
[root@localhost ~]#

说明:whereis -m svn 查出说明文档路径,whereis -s svn 找source源文件。

-   -   -   -   -   -   -   -

 

locate 命令

locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。在一般的 distribution 之中,数据库的建立都被放在 crontab 中自动执行。

1.命令格式:Locate [选择参数] [样式]2.命令功能:locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或 刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)locate指定用在搜寻符合条件的档案,它会去储存档案与目录名称的数据库内,寻找合乎范本样式条件的档案或目录录,可以使用特殊字元(如”*” 或”?”等)来指定范本样式,如指定范本为kcpa*ner, locate会找出所有起始字串为kcpa且结尾为ner的档案或目录,如名称为kcpartner若目录录名称为kcpa_ner则会列出该目录下包括 子目录在内的所有档案。locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在 执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达update强迫系统立即修改索引数据库。3.命令参数:-e   将排除在寻找的范围之外。-1  如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。-f   将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案 放在资料库中。-q  安静模式,不会显示任何错误讯息。-n 至多显示 n个输出。-r 使用正规运算式 做寻找的条件。-o 指定资料库存的名称。-d 指定资料库的路径-h 显示辅助讯息-V 显示程式的版本讯息

4.使用实例:

实例1:查找和pwd相关的所有文件 命令:locate pwd输出:

peida-VirtualBox ~ # locate pwd
/bin/pwd
/etc/.pwd.lock
/sbin/unix_chkpwd
/usr/bin/pwdx
/usr/include/pwd.h
/usr/lib/python2.7/dist-packages/twisted/python/fakepwd.py
/usr/lib/python2.7/dist-packages/twisted/python/fakepwd.pyc
/usr/lib/python2.7/dist-packages/twisted/python/test/test_fakepwd.py
/usr/lib/python2.7/dist-packages/twisted/python/test/test_fakepwd.pyc
/usr/lib/syslinux/pwd.c32
/usr/share/help/C/empathy/irc-join-pwd.page
/usr/share/help/ca/empathy/irc-join-pwd.page
/usr/share/help/cs/empathy/irc-join-pwd.page
/usr/share/help/de/empathy/irc-join-pwd.page
/usr/share/help/el/empathy/irc-join-pwd.page


实例2:搜索etc目录下所有以sh开头的文件 命令:locate /etc/sh输出:

peida-VirtualBox ~ # locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells
peida-VirtualBox ~ #


实例3:搜索etc目录下,所有以m开头的文件 命令:locate /etc/m输出:

peida-VirtualBox ~ # locate /etc/m
/etc/magic
/etc/magic.mime
/etc/mailcap
/etc/mailcap.order
/etc/manpath.config
/etc/mate-settings-daemon

  

linux中grep命令详解

...非常有用的,它和管道(|)配合使用,非常强大,用于搜索文本文件.如果想要在几个文本文件中查找一字符串,可以使用‘grep’命令。‘grep’在文本中搜索指定的字符串。假设您正在‘/usr/src/linux/Documentation’目录下搜索带字符串‘ma... 查看详情

linux操作命令分类详解-进程查找其他(代码片段)

...章1、su、sudo1.1sudo使用步骤1.2常用参数搭配1.3实例2、上传文件工具命令3、系统进程命令3.1ps显示当前进程的状态3.2kill 删除执行中的程序或工作4、查找命令4.1find查找命令4.2locate快速查找命令4.3whereis查找文件命令4.4which环境变量... 查看详情

020linux20个宝藏命令案例(代码片段)

...1)使用安装包安装(2)使用yum工具安装3查看AscII表命令4文件下载wget命令5文件比较diff命令6远程拷贝文件scp命令7大文件切割成小文件split命令8 查看详情

linux常用命令详解find

...如下:find命令手册:manfindfind命令中的-name选项可以根据文件名称进行检索(区分大小写)。如需要忽略文件名中的大小写,可以使用-iname选项。-name和-iname两个选项都支持wildcards。如:例1:查找/usr目录下所有文件名以.txt结尾... 查看详情

linux下文本查找技巧你掌握了吗?(代码片段)

...之前介绍过很多linux下查找相关的命令,例如《Linux中的文件查找技巧》,《find命令高级用法》,《如何查看linux中文件打开情况-lsof命令》等等,而对文件内容搜索的命令似乎还没有涉及,因此本文介绍文本搜索命令--grep。 ... 查看详情

详解linux——find命令(stat+exec+xargs+dd命令)(代码片段)

文章目录find命令1.根据名称查找文件2.根据文件修改时间查找文件stat命令touch命令根据文件的最后修改时间搜索文件3.根据文件大小查找文件dd命令按文件大小查找4.-exec和xargsfind命令在Linux操作系统中,find命令主要用于进行文... 查看详情

linux操作命令分类详解-命令速查(代码片段)

...Linux快捷键2.1常用快捷键2.2快捷键分类介绍3、命令速查3.1文件和目录3.2查看文件内容3.3文本处理3.4查找3.5压缩和解压3.6yum工具3.7网络3.8其他4、关机、重启、防火墙命令4.1关机命令4.2重启命令4.3防火墙命令 5、帮助命令5.1 help命... 查看详情

linux:grep命令检索文件内容详解(代码片段)

前言Linux系统中搜索、查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索。下面来一起看看Linux利用grep命令检索文件内容的详细介绍。方法如下:1、搜索某个文件里... 查看详情

linux下find命令详解

find命令是用来在给定的目录下查找符合给定条件的文件  find[OPTIONS][查找起始路径][查找条件][处理动作]      一、OPTIONS参数  -P、-L、-H:控制软连接的对待方式,用的不多。不介绍了二、查找路径  ... 查看详情

linux下find命令用法详解

...教育平台 本文作者为VIP学员烟火 第一部分:根据文件名查找 1、在当前目录查找名称为test的所有文件:findtest 2、在主目录下查找名称为test的所有文件:find/home–nametest 3、在主目录 查看详情

linux下按文件名和文件内容查找文件

参考技术A在当前目录下,查找所有内容包含‘abc'的文件find.-typef|xargsgrep-l'abc'或find.-typef-execgrep-l'abc'\\;扩展资料:linux查找文件命令find根据部分文件名查找方法:这个方法和在WINDOWS中查找已知的文件名方法是一样... 查看详情

find命令详解

...78834340一、主要内容======================================1. 用文件名查找文件2.用文件名查找文件,忽略大小写3. 使用mindepth和maxdepth限定搜索指定目录的深度4. 在find命令查找到的文件上执行命令5. 相反匹配6. 使用inode... 查看详情

linux之vim详解

...编辑工具的一、vim的三种模式1、命令模式:使用Vim编辑文件时,默认处于命令模式。在此模式下,可以使用上、下、左、右键或者k、j、h、l命令进行光标移动,还可以对文件内容进行复制、粘贴、替换、删除等操作。2、输入模... 查看详情

linux系统命令-ls详解

...示目录内容ls1、ls的作用显示目录中内容,包括子目录和文件相关属性信息ls[选项][文件或目录]可以指定一个文件进行ls查看,也可以直接ls2、常用选项 二、ls常用选项详解分析1、用ls-l命令查看某一个目录会得到一个7个字段... 查看详情

linux中mv命令使用详解

mv命令是move的缩写,可以用来移动文件或者将文件改名(move(rename)files),是Linux系统下常用的命令,经常用来备份文件或者目录。1.命令格式:   mv[选项]源文件或目录目标文件或目录2.命令功能:视mv命令中第二个... 查看详情

大数据学习笔记~linux基础篇

...  c、使用Xshell连接Linux虚拟机三、Linux命令使用    a、文件相关的高级命令    b、vi命令        1.编辑文件内容        2.复制粘贴        3.查找字符串        4.快速删除        5.查找某一行内容     ... 查看详情

linux操作命令分类详解-命令速查(代码片段)

...Linux快捷键2.1常用快捷键2.2快捷键分类介绍3、命令速查3.1文件和目录3.2查看文件内容3.3文本处理3.4查找3.5压缩和解压3.6yum工具3.7网络3.8其他4、关机、重启、防火墙命令4.1关机命令4.2重启命令4.3防火墙命令 5、帮助命令5.1 help命... 查看详情

linux每日命令(30):linux用户及用户组相关文件命令详解(代码片段)

阅读目录(Content)一.用户、用户组概念及其文件结构详解二.常用的用户、用户组shell命令用户相关命令useradduserdelusermodpasswd用户组相关命令groupaddgroupdelgroupmod三.综合示例1.建立两个用户组group1和group2,以及三个用户dennis、daniel、ab... 查看详情