千家信息网

Linux中常用的查询指令(which、whereis、find、locatae)

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:Which 查看可执行文件的位置。whereis 查看文件的位置。locate 配合数据库查看文件位置。Find
千家信息网最后更新 2025年02月01日Linux中常用的查询指令(which、whereis、find、locatae)

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

Which 查看可执行文件的位置。

whereis 查看文件的位置。

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

Find 实际搜寻硬盘查询文件名称

which

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

1.命令格式: which 可执行文件名称

2.命令功能: which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

例1:

查找有别名的命令时,显示别名的信息

例如:在环境变量指定的路径中,搜索ls命令的位置

3.命令参数:

-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

-p  与-n参数相同,但此处的包括了文件的路径。

-w  指定输出时栏位的宽度。

-V  显示版本信息

which -v


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.使用实例:

whereis -b grep 定位可执行文件。

whereis -m grep 定位帮助文件。

whereis -s grep 定位源代码文件。

whereis -u grep 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件


-B 指定搜索可执行文件的路径。

-M 指定搜索帮助文件的路径。

-S 指定搜索源代码文件的路径。


find指令:

Linux下find命令在目录结构中搜索文件,并执行指定的操作。 Linux下find命令提供了相当多的查找条件,功能很强大。由于 find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS), find命令在该文件系统中同样有效,只你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

1.命令格式:

find pathname -options [-print -exec -ok ...]

2.命令功能:

用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

3.命令参数:

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录

-print: find命令将匹配的文件输出到标准输出。

-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {} \;,注意{}和\; 之间的空格。

-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行

使用用例:

查找当前目录下的test.cpp 并输出

查找当前目录下的test.c并且显示权限

查找当前目录下的test.c并且显示权限

4.命令选项:

-name 按照文件名查找文件(精确查找区分大小写)

-iname 按照文件名查找文件(不区分大小写)

-perm 按照文件权限来查找文件

-user 按照文件属来查找文件。

-group 按照文件所属的组来查找文件

-mtime -n +n 按照文件的更改时间来查找文件

- n表示文件更改时间距现在n天以内

+ n表示文件更改时间距现在n天以前

find命令还有-atime和-ctime 选项,但它们都和-m time 选项相同

-nogroup 查找无有效所属组的文件,即该文件所属的组在/ etc/groups中不存在

-nouser 查找无有效属主的文件,即该文件的属主在/etc/ passwd中不存在。

-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件

-type 查找某一类型的文件,诸如

b - 块设备文件

d - 目录

c - 字符设备文件

p - 管道文件

l - 符号链接文件

f - 普通文件

-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。


-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找

-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息

-mount:在查找文件时不跨越文件系统mount点。

-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件

-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

另外,下面三个的区别:

- 建时间来查找文件,-n指n天以内,+n指n天以前

例子:

1. 在当前目录中查找更改时间在5日以前的文件并删除它们:

find . -type f -mtime +5 -ok rm {} \;

2. Linux 用find命令查找文件大小为XX的文件的办法

例如:一个文件5556字节,可以这样写

即查找大于5555字节小于5557字节的文件,以上查找的是/root 目录

find /root -size -5557c -size +5555c -exec ls -ld {} \;

查找小于500K,大于50K的文件

find /root -size -500K -size +50K -exec ls -ld {} \;

练习:

查找/目录下文件名为test的目录

$ find / -name test -print

查找当前所有目录并排序

升序

降序

查找所有目录名称中按照".log"结尾的目录

]$ find / -name '*.log' -print


查找系统中最近5分钟访问的目录

查找系统中最近5天访问的文件

find / -mtime -5

查找当前目录下所有权限为775的文件,并设置成777

find . -perm 775 -ok chmod 777 {} \;

查找文件大小为10k的文件,并删除


locate指令:

使用权限:所有使用者

使用方式: locate [-q] [-d ] [--database=]

locate [-r ] [--regexp=]

locate [-qv] [-o ] [--output=]

locate [-e ] [-f ] <[-l ] [-c]

locate [-Vh] [--version] [--help]

说明:

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

在一般的 distribution 之中,资料库的建立都被放在 contab 中自动执行。一般使用者在使用时只要用 # locate your_file_name 的型式就可以了。

参数:

-u

-U

建立资料库,-u 会由根目录开始,-U 则可以指定开始的位置。

-l

如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会使速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料

-f

将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在资料库中

-q

安静模式,不会显示任何错误讯息

-n

至多显示 n个输出

-r

使用正规运算式做寻找的条件

-o

指定资料库存的名称

-d

指定资料库的路径

-h

显示辅助讯息

-v

显示更多的讯息

-V

显示程式的版本讯息

范例:

locate chdrv : 寻找所有叫chdrv 的档案

locate -n 100 a.out :寻找所有叫 a.out 的档案,但最多只显示100个

locate -u : 建立资料库


文件 命令 系统 搜索 目录 路径 档案 参数 位置 源代码 资料 时间 权限 帮助 数据 文件名 资料库 定位 功能 字节 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 负责网络安全是什么工程师 怎么打开微信数据库 面试时被问软件开发规划 女生中专计算机网络技术 常用的协同软件开发 国家网络安全中心副主任 数据库压力测试工具绿色完整版 电信宽带对应的是不是电信服务器 致配互联网科技有限公司 当今对网络安全的看法论文 原神太空岛数据库 CAD图形识别软件开发 三级网络技术大纲变革 广州大满贯网络技术 信息安全网络安全论文 请求频繁 服务器安全 系统网络安全对抗 常见中文检索数据库系统 win7时间服务器同步无法更新 京东免费服务器 该问题应该在数据库三级模式 下列软件开发中的方法中 贵州it软件开发中心 云南昆明做软件开发好找工作吗 湖北互联网软件开发机构 工业网络技术出来做什么的 上海pdu服务器专用电源价钱 脸云互联网科技有限公司 倚天屠龙记手游服务器 原神太空岛数据库
0