Linux文件查找新姿势:总有一种你没见过

简介: 本文介绍了Linux系统中常用的四种文件查找工具:which、find、locate、grep和whereis。对于初学者或是刚接触Linux的新手有着很大帮助,本文为转载后改编,完善了原文的不足之处。

虽然Linux是一款操作简单、管理便捷的操作系统,但几乎没有人会完全记住系统的所有文件的位置或文件内容。因此,当用户需要确认一个文件的所在位置时,可以通过搜索命令对文件进行搜索。

which

which命令的工作原理非常简单,它通过检查系统的环境变量(例如PATH)来查找特定命令的可执行文件路径。它会按照环境变量中定义的顺序遍历这些目录,返回找到的第一个匹配项。

优点:

1、简单快速,适用于查找命令的位置。

2、适用于验证特定命令是否安装在系统上。

缺点:

1、无法搜索文件内容。

2、仅用于查找命令,不适用于文本搜索。

使用方式:

# 查找命令位置 
which command_name


应用场景:

1、当想要查找特定命令的可执行文件路径时。

2、当需要验证系统上是否安装了某个命令。

find

find命令是一款功能强大的文件和目录搜索工具。它基于指定的路径,递归地搜索文件和目录,并使用各种条件来匹配文件,如名称、类型、修改时间等。

优点:

1、功能强大,支持多种搜索条件,包括文件内容搜索。

2、可以用于查找文件和目录,以及执行各种操作。

缺点:

命令格式相对复杂,需要更多的参数和选项。

使用方式:

# 在指定路径中搜索文件或目录 
find path_to_search [options] [expression]

应用场景:

1、find非常适合以下情况:

2、在整个文件系统中搜索文件和目录。

3、查找符合特定条件的文件,如按名称、类型或修改时间等。

4、进行高级文件内容搜索。

locate

locate命令通过使用系统维护的文件名数据库来查找文件和目录。这个数据库包含了系统中所有文件和目录的索引。

优点:

1.查询速度非常快,适用于文件名查找。

2.对于大型文件系统,性能更加出色。

缺点:

1.无法搜索文件内容。

2.数据库可能不会实时更新,因此可能会漏掉最新创建的文件。

使用方式:

# 查找文件名 
locate file_name

注意事项:

locate的数据库默认每天更新一次,因此对于新增文件的搜索结果可能并不理想。您可以使用updatedb命令手动更新数据库。

#手动更新locatedb数据库
[root@localhost ~]# updatedb
#不指定目录进行搜索
[root@localhost ~]# locate pwd
/etc/.pwd.lock
/usr/bin/pwd
/usr/bin/pwdx
/usr/include/pwd.h
/usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/watchdog/hpwdt.ko.xz
/usr/lib/x86_64-redhat-linux6E/include/pwd.h
/usr/lib64/cracklib_dict.pwd
/usr/lib64/python2.7/lib-dynload/spwdmodule.so
/usr/lib64/python2.7/site-packages/ldap/controls/pwdpolicy.py
/usr/lib64/python2.7/site-packages/ldap/controls/pwdpolicy.pyc
/usr/lib64/python2.7/site-packages/ldap/controls/pwdpolicy.pyo
/usr/sbin/unix_chkpwd
/usr/share/cracklib/cracklib-small.pwd
/usr/share/cracklib/pw_dict.pwd
/usr/share/doc/krb5-workstation-1.15.1/user/pwd_mgmt.html
/usr/share/man/man0p/pwd.h.0p.gz
/usr/share/man/man1/pwd.1.gz
/usr/share/man/man1/pwdx.1.gz
/usr/share/man/man1p/pwd.1p.gz
/usr/share/man/man3/lckpwdf.3.gz
/usr/share/man/man3/ulckpwdf.3.gz
/usr/share/man/man8/unix_chkpwd.8.gz
/usr/share/man/overrides/de/man1/pwdx.1
/usr/share/man/overrides/fr/man1/pwdx.1
/usr/share/man/overrides/uk/man1/pwdx.1
/usr/share/man/zh_CN/man1/pwd.1.gz
/usr/share/man/zh_CN/man3/pwd.3tcl.gz
/usr/src/kernels/3.10.0-957.el7.x86_64/include/config/hpwdt
/usr/src/kernels/3.10.0-957.el7.x86_64/include/config/hpwdt/nmi
/usr/src/kernels/3.10.0-957.el7.x86_64/include/config/hpwdt/nmi/decoding.h
#指定目录进行搜索
[root@localhost ~]# locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells

grep

grep命令用于在文本文件中搜索匹配特定模式或关键词的行。它通过逐行扫描文本文件并比较模式来查找匹配项。

优点:

1、强大的文本搜索工具,支持正则表达式。

2、可以用于查找文本内容。

缺点:

1、仅适用于文本文件,不适用于二进制文件。

2、不支持文件和目录的搜索,仅限于文本内容搜索。

使用方式:

# 在文件中搜索关键词 
grep [options] pattern file_name

应用场景:

1、在文本文件中搜索特定的关键词或模式。

2、需要进行高级文本内容搜索,例如,查找所有包含某个关键词的文件。
在选择文件查找工具时,需要根据具体的任务和需求来决定。如果只需查找可执行文件的路径,which是一个简单而快速的选择。如果需要进行复杂的文件和目录搜索,包括文本内容搜索,find是一个强大的工具。对于快速的文件名查找,locate是一个高性能的选项。而如果主要关心文本内容搜索,那么grep是无可替代的工具。

whereis

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

优点:

1、快速定位文件位置:whereis命令通过搜索系统预定义的特定目录来查找文件,因此执行速度较快。

2、简单易用:whereis命令的使用非常简单,只需要提供要查找的文件名即可。

缺点:

1、仅限于特定目录搜索:whereis命令默认只在一些特定的目录中搜索文件,如/bin、/sbin、/usr/bin等。这意味着它可能无法找到不在这些目录中的文件。

2、不支持模糊搜索:whereis命令只能进行精确匹配,无法进行模糊搜索或使用通配符进行文件名匹配。

3、无法搜索文件内容:whereis命令只能查找文件的位置,无法搜索文件的内容。

使用方式:

whereis grep

说明:whereis寻找特定文件,只能用于查找二进制文件、源代码文件和man手册页

相关文章
|
24天前
|
Linux
Linux中将文件解压到指定目录
Linux中将文件解压到指定目录
|
1天前
|
Linux
Linux查看文件的行数,字数,字节数
Linux查看文件的行数,字数,字节数
|
4天前
|
Linux
Linux 中经常见到的 gz 文件
Linux 中经常见到的 gz 文件
|
1天前
|
Ubuntu Java Linux
查看Linux系统中日志文件
查看Linux系统中日志文件
|
14天前
|
网络协议 Unix Linux
Linux 多种方式实现文件共享(三)NFS 6
【8月更文挑战第6天】NFS 即网络文件系统,是一种使用于分布式文件系统的协议,NFS 功能是通过网络让不同的机器,不同的操作系统能够彼此分享各自的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据
49 13
|
4天前
|
存储 Linux Windows
Linux zip命令:压缩文件或目录
我们经常会在 Windows 系统上使用 “.zip”格式压缩文件,其实“.zip”格式文件是 Windows 和 Linux 系统都通用的压缩文件类型,属于几种主流的压缩格式(zip、rar等)之一,是一种相当简单的分别压缩每个文件的存储格式,本节要讲的 zip 命令,类似于 Windows 系统中的 winzip 压缩程序,其基本格式如下: [root@localhost ~]#zip [选项] 压缩包名 源文件或源目录列表 注意,zip 压缩命令需要手工指定压缩之后的压缩包名,注意写清楚扩展名,以便解压缩时使用。 下面给大家举几个例子。 【例 1】zip 命令的基本使用。 [r
18 0
Linux zip命令:压缩文件或目录
|
7天前
|
Linux Shell 数据库
【绝技大公开】Linux文件查找新招式:打破常规,探索那些鲜为人知的技巧,让你成为真正的文件追踪大师!
【8月更文挑战第13天】文件查找是Linux用户必备技能,能大幅提升工作效率。本文介绍几种高效查找方法,包括使用`column`美化`find`输出、利用`locate`和`mlocate`快速搜索、编写脚本自动化任务、采用`fd`现代工具提升查找体验,以及结合`grep`和`rg`搜索文件内容。此外,还推荐了`Gnome Search Tool`和`Albert`等图形界面工具,为用户提供多样选择。掌握这些技巧,让你的工作更加得心应手。
22 2
|
13天前
|
存储 网络协议 Linux
Linux 多种方式实现文件共享(四)iSCSI 磁盘共享服务 7
【8月更文挑战第7天】iSCSI技术是一种新储存技术, iSCSI 提供了在 IP 网络封装 SCSI 命令,且以TCP/IP协议传输.
35 5
|
11天前
|
Linux
Linux专栏07:Linux基本指令之文件搜索指令
Linux专栏07:Linux基本指令之文件搜索指令
34 2
|
14天前
|
存储 Linux 开发工具
Linux 多种方式实现文件共享(二)Samba 5
【8月更文挑战第5天】Samba 文件共享
40 5