方法使用'find'命令更有效地搜索目录

本教程将带您了解在Linux中查找目录的不同方法。正如你可能已经知道,在 Linux的一切都是文件 ,包括目录。 和常见的东西的Linux用户将在命令行中做一个 搜索文件或目录 。 有用于搜索的命令行上的文件等几种不同的手段和实用程序 查找和定位(which) , which 只用于定位的命令。 对于本教程的范围,我们将主要集中在 find工具 ,它在搜索现场Linux文件系统的文件和更加高效和可靠的比较来 定位定位的缺点是,它读取由 数据库更新创建一个或多个数据库,它不通过实时文件系统进行搜索。此外,它不提供从哪里搜索(起点)的灵活性。 下面是运行 查找命令的语法:
# locate [option] [search-pattern]
为了证明 定位的缺点,让我们假设我们正在寻找一个新的目录 pkg在当前的工作目录。 :在下面的命令中,选项 --basename-b告诉 定位只匹配文件(目录)basename(which是 pkg ),而不是路径 (/path/to/pkg)。\是一个通配符的字符,它由 *pkg*禁用隐更换 pkg
$ locate --basename '\pkg'

使用locate命令查找目录

正如你可以从命令的输出看到上面, 找到将搜索开始从根 (/)目录,这就是为什么具有相同名称的其他目录匹配。 因此,要解决此问题,请通过下面的简化语法 查找
$ find starting-point options [expression]
让我们来看几个例子。 要搜索的同一目录 (pkg)之上,当前的工作目录中,运行以下命令,其中 -name标志读取表达式,在这种情况下是目录基名。
$ find . -name "pkg"
如果遇到“ 权限被拒绝 ”的错误,使用 sudo命令 ,如下所示:
$ sudo find . -name "pkg"

使用find命令搜索目录

您可以防止 找到搜索其他文件类型使用不同的目录 -type标记指定的文件类型(在命令下面 d意味着目录),如下所示:
$ sudo find . -type d -name "pkg"
此外,如果你想 列出目录的长列表格式 ,采用的动作开关 -ls
$ sudo find . -type d -name "pkg" -ls

查找和列出目录

接下来,选择 -iname将使区分大小写的搜索:
$ sudo find . -type d -iname "pkg" 
$ sudo find . -type d -iname "PKG" 

查找具有区分大小写的目录

为了找到更有趣,更先进的使用信息,请阅读 查找定位的手册页。
$ man find
$ man locate
作为最后此言一出, find命令是针对时 locate命令搜索称重Linux系统中的文件(或目录)更可靠和有效。 以同样的方式,不要忘了通过下面的评论部分向我们发送您的反馈或问题。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏