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

本教程将带您通过不同的方式找到一个目录或文件在Linux文件系统更有效地比定位命令。

本教程将带您了解在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命令

使用locate命令查找目录

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

使用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系统中的文件(或目录)更可靠和有效。 以同样的方式,不要忘了通过下面的评论部分向我们发送您的反馈或问题。