前言Linux中常用的查找命令有四种:locate、whereis、which和find。本文介绍它们的区别和简单使用。locate命令此命令将检查您的整个文件系统并找到此关键字的每个匹配项。所以你可以想象,结果可能是不可接受的。locate关键字locate使用的数据库通常每天更新,因此如果您正在搜索最近创建的内容,它可能不会在您的搜索中返回。您可以使用updatedb命令为locate命令手动更新数据库。locateaircrack-ngwhereis命令在Linux中,可执行文件称为二进制文件,如果要定位一个二进制文件,whereis比locate效率更高。whereisbinary此命令将返回二进制文件的位置,以及它的源代码和手册页(如果可用)。whereisaircrack-ngwhich命令Linux中的PATH变量存储操作系统在其中查找您在命令行上执行的命令的目录。whichbinarywhichcommand在您的PATH中找到一个二进制文件。如果它在当前PATH中没有找到二进制文件,它什么都不返回。whichaircrack-ng这些目录通常包括/usr/bin,但也可能包括/usr/sbin等一些目录。find命令最强大的搜索命令是find命令。您可以使用它在具有各种参数的任何指定目录中进行搜索。基本语法是:finddirectoryoptionsexpression假设我有一个名为test.txt的文件,我需要查找但不确定它在哪个目录中。我可以执行下面的命令从文件系统的顶部/开始搜索.find/-typef-nametest.txt的具体含义是:/表示从文件系统的顶部开始查找。-type是你正在寻找的东西的类型。f表示文件,b表示块特殊设备文件,c表示字符特殊设备文件,d表示目录,l表示符号链接。-name是你要查找的东西的名称,结果将是完全匹配的。从顶部开始搜索每个目录需要一定的时间。我们可以通过指定目录来加快速度。假设我知道该文件位于主目录中:timefind/home-typef-nametest.txt我在这里使用time命令,以便查看每个命令花费的时间。find命令仅显示完全匹配的名称。如果file.txt具有不同的扩展名,则不会返回。我创建了另一个文件text.conf,现在如果我只使用test.txt作为名称进行搜索,我将不再返回test.conf文件。我们可以通过使用通配符来解决这个限制。它们允许我们匹配多个字符并以几种不同的形式出现。假设我们有一个包含cat、hat、what和bat文件的目录:*匹配多个字符。*随意匹配:猫、帽子、什么和蝙蝠。?匹配单个字符。?随意匹配:猫、帽子、蝙蝠,但不是什么。[]匹配出现在方括号内的字符。[c,b]将匹配cat和bat。find/home-typef-nametest.*find支持大量测试,甚至是运算符。假设我们要查找所有权限不是0600的文件和所有权限不是0700的目录。find~\(-typef-not-perm0600\)-or\(-typed-notperm0700\)This命令的意思是:查找所有权限不是0600的文件或所有权限不是0700的目录。在~目录(home)中搜索。\(-typef-not-perm0600)反斜杠将括号转义,我们在这里使用它来将测试和运算符组合成一个更大的表达式。默认情况下,查找是从左到右计算的。-not告诉我们,如果结果为假,则测试是匹配的。-not可以缩写为!。所以这部分也可以是\`(-typef!-perm0600)`。-or告诉我们如果任一测试为真则进行匹配。可以简写为-o。\(-typed-notperm0700\)是另一个测试,与第一个非常相似,除了类型是目录。find是一个强大的命令,有很多测试,一定要做更多的研究。综上所述就是在Linux中找东西的介绍:)
