1

在 Linux 中查找东西locate, whereis, which 和 find 命令的介绍

 1 year ago
source link: https://blog.p2hp.com/archives/8729
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

让我们看一下这些命令:

locate
whereis
which
find

locate命令_

该命令将遍历您的整个文件系统并找到该关键字的每一次出现,因此您可以想象结果可能是压倒性的。

locate keyword

locate使用通常每天更新一次的数据库,因此如果您正在搜索最近创建的内容,它可能不会在您的搜索中返回。您可以使用

updatedb

命令手动更新locate命令的数据库。

locate aircrack-ng
image-1.png

whereis命令_

在 Linux 中,可执行文件称为二进制文件,如果要定位二进制文​​件,whereislocate.

whereis binary

此命令将返回二进制文件位置、其源代码和手册页(如果可用)

whereis aircrack-ng

image-2.png

which命令_

Linux 中的PATH变量保存操作系统在其中查找您在命令行中执行的命令的目录。

which binary

which 命令在您的PATH. 如果在 current 中找不到二进制文件,则不PATH返回任何内容。

which aircrack-ng
image-3.png

这些目录通常包括/usr/bin但可能包括/usr/sbin和其他一些目录。

find命令_

最强大的搜索命令是find命令。您可以使用它在任何指定的目录中搜索并使用各种参数。

基本语法是:

find directory options expression

假设我有一个名为的文件test.txt,我需要找到它,但不确定它的确切目录。我可以执行以下命令从文件系统顶部开始搜索 /

find / -type f -name test.txt
  • /表示从文件系统的顶部
  • -type就是你要找的,f意思是文件,b意思是块特殊设备文件,c字符特殊设备文件,d目录,l符号链接。
  • -name是您要查找的名称,结果将完全匹配。
image-4.png

从顶部开始查找每个目录的搜索可能需要一段时间。我们可以通过提供一个目录来加快速度,假设我知道这个文件在主目录中。

time find /home -type f -name test.txt

我在time这里使用了命令,所以我们可以看到每个命令花费了多长时间。

image-5.png

find命令仅显示完全匹配的名称。如果file.txt有不同的扩展名,则不会被退回。我创建了另一个文件test.conf,现在如果我find只使用test.txt作为名称进行搜索,我不再得到test.conf返回的文件。

image-7.png

我们可以使用wildcards它们让我们匹配多个字符并有几种不同的形式:

假设我们有一个目录,其中包含文件 cat、hat、what 和 bat

  • *匹配多个字符*at将匹配:cat、hat、what 和 bat。
  • ?匹配单个字符?at将匹配 cat、hat、bat 但不匹配什么。
  • []匹配出现在方括号内的字符[c,b]将匹配 cat 和 bat
find /home -type f -name test.*
image-8.png

find支持大量测试甚至操作符,假设我们要查找所有权限不是 0600 的文件和不是 0700 的目录。

find ~ \( -type f -not -perm 0600 \) -or \( -type d -not perm 0700 \)

该命令说:查找权限不是 0600 的所有文件或权限不是 0700 的所有目录。

  • find ~查看~目录(主目录)。
  • \( -type f -not -perm 0600)斜线是对括号的转义,我们在这里使用括号将测试和运算符组合在一起,形成一个更大的表达式。默认情况下,find从左到右计算。如果结果为假,-not则告诉我们此测试是匹配的。-not可以缩写为an,!所以这部分也\( -type f ! -perm 0600)可以
  • -or这告诉我们,如果任一测试为真,则它是匹配的。可以简写为-o
  • \( -type d -not perm 0700 \)另一个测试,与第一个非常相似,只是这里的类型是目录。

image-7.png

find是一个具有许多测试的强大命令,请确保对其进行更多研究。

这就是这个在 Linux 中寻找东西的介绍:)


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK