在 Linux 中查找东西locate, whereis, which 和 find 命令的介绍
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
whereis
命令_
在 Linux 中,可执行文件称为二进制文件,如果要定位二进制文件,whereis
比locate
.
whereis binary
此命令将返回二进制文件位置、其源代码和手册页(如果可用)
whereis aircrack-ng
which
命令_
Linux 中的PATH
变量保存操作系统在其中查找您在命令行中执行的命令的目录。
which binary
which 命令在您的PATH
. 如果在 current 中找不到二进制文件,则不PATH
返回任何内容。
which aircrack-ng
这些目录通常包括/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
是您要查找的名称,结果将完全匹配。
从顶部开始查找每个目录的搜索可能需要一段时间。我们可以通过提供一个目录来加快速度,假设我知道这个文件在主目录中。
time find /home -type f -name test.txt
我在time
这里使用了命令,所以我们可以看到每个命令花费了多长时间。
该find
命令仅显示完全匹配的名称。如果file.txt
有不同的扩展名,则不会被退回。我创建了另一个文件test.conf
,现在如果我find
只使用test.txt
作为名称进行搜索,我不再得到test.conf
返回的文件。
我们可以使用wildcards
. 它们让我们匹配多个字符并有几种不同的形式:
假设我们有一个目录,其中包含文件 cat、hat、what 和 bat
*
匹配多个字符*at
将匹配:cat、hat、what 和 bat。?
匹配单个字符?at
将匹配 cat、hat、bat 但不匹配什么。[]
匹配出现在方括号内的字符[c,b]
将匹配 cat 和 bat
find /home -type f -name test.*
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 \)
另一个测试,与第一个非常相似,只是这里的类型是目录。
find
是一个具有许多测试的强大命令,请确保对其进行更多研究。
这就是这个在 Linux 中寻找东西的介绍:)
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK