39. 查找工具 - 命令行 & 文件基本搜索

开篇词

Linux 给我们提供了便于快速查找文件以及命令位置的工具。
 

查找命令

whereis

我们可以使用 whereis 命令来过去命令二进制文件、源文件和用户手册的路径。
这里有一些 whereis 命令提供的选项:

选项 用途
-s 只搜索源文件
-b 只搜索二进制文件
-m 只搜索手册文件

默认情况下,命令使用了这三个选项:

whereis ls    # 等价于 whereis -sbm ls

输出 ls 命令的源文件、二进制文件以及使用手册

locate

我们同样可以使用 locate 命令来查找命令的位置。
这里有一些 locate 命令提供的选项:

选项 用途
-b 或 --basename 根据文件名来搜索
-w 或 --wholename 根据路径加文件名来搜索
-i 或 --ignore-case 路径和文件名可以是大写或小写,无视大小写

默认情况下,命令使用了 -w 选项:

locate '/bin/ls'    # 等价于 locate -w '/bin/ls'

输出在 /bin/ls 目录下以 ls 开头的文件名
 

查找文件

通过 find 命令,我们可以查找我们想要的几乎所有的文件。
我么来准备一些目录:

touch file01 file02 file03
mkdir -p dir01/dir01_01/dir01_01_01
mkdir -p dir01/dir01_02/dir01_02_01
mkdir -p dir01/dir01_03/dir01_03_01
mkdir -p dir02/dir02_01/dir02_01_01
mkdir -p dir02/dir02_02/dir02_02_01
mkdir -p dir02/dir02_03/dir02_03_01
ll
tree dir01 dir02

创建多个多层级目录

这里有一些 find 命令提供的选项:

选项 用途
-name 根据文件名搜索
-path 根据路径名搜索
-type d 搜索目录
-type f 搜索普通文件
-type l 搜索软链接

根据文件名查找

在子目录中遍历名称以 dir 开头的所有文件或目录:

find -name 'dir*'

查找名称以 dir 开头的所有目录或文件
我们找以下以 dir01 开头的文件或目录:

find -name 'dir01*'

查找名称以 dir 开头的所有目录或文件

根据路径查找

如果我们想要更高效的查找目录,我们可以使用 -path 选项。
我们来找一下结构类似于 01_02/dir 的目录:

find -path '*01_02/dir*'

查找名称以 dir 开头的所有目录或文件

搜索目录

我们可以使用 -type d 参数来查找目录:

find -type d

查找所有的目录

搜索普通文件

我们可以使用 -type f 参数来查找普通文件:

find -type f

查找所有的普通文件

搜索软链接

我们可以使用 -type l 参数来查找软链接:

ln -s file01 file01_link    # 这将创建一个名为 file01_link 的软链接
ll file01_link
find -type l

查找创建好的软链接
 

我所撰写的英文版本

39. Find Utilities - Commands & Files Searching Basics
 

引用

参见

上一篇:

想看手册的其他内容?请访问该手册的所属专栏:《Linux 管理员手册:既简单又深刻

发布了132 篇原创文章 · 获赞 6 · 访问量 7944

猜你喜欢

转载自blog.csdn.net/stevenchen1989/article/details/104205312