linux中查找文件位置的命令有很多,常用的有find,locate和whereis三个命令,下面分别介绍它们的用法:
1、find命令是linux中最强大的查找文件的命令,它的格式为”find <指定目录><指定条件><指定动作>“。比如使用find命令搜索在根目录下的所有interfaces文件所在位置,命令格式为”find / -name 'interfaces'”,输入后就会返回搜索的结果了:
2、第二个命令是locate命令,使用locate也可以搜索到linux系统中的文件,同样的这里使用locate命令搜索interfaces文件,命令为”locate interfaces“,locate命令是比find命令快的,因为它查询的是locatedb数据库,该数据库包含本地所有的文件信息:
3、最后一个是使用”whereis“命令搜索文件,但是只可以搜索linux系统中的可执行文件。这里用whereis搜索interfaces文件就不起作用了,所以使用whereis命令搜索grep的可执行文件,其命令为”whereis grep“。以上就是linux中查找文件的命令的用法介绍:
可以使用find及local查找。 find:1.命令格式:
find pathname -options [-print -exec -ok ...]
2.命令功能:
用于在文件树种查找文件,并作出相应的处理
3.命令参数:
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
4.命令选项:
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
ls -al |grep c* 这样就可以了,运用管道命令|。
如何使用命令行在Linux中查找文件和文件夹
1
使用查找命令,“find”命令允许您搜索知道近似文件名的文件。该命令的最简单形式在当前目录中搜索文件,并递归地通过其与所提供的搜索条件匹配的子目录。您可以按名称,所有者,组,类型,权限,日期和其他条件搜索文件。
在提示符下键入以下命令将列出当前目录中的所有文件。
“find”后的点表示当前目录。
2
要查找符合特定模式的文件,请使用-name参数。您可以使用文件名元字符(例如*),但您应该将一个转义字符(\)放在每个字符之前或将它们括在引号中。
例如,如果要在Documents目录中找到以“pro”开头的所有文件,我们将使用该cd Documents/命令更改为Documents目录,然后键入以下命令:
find . -name pro\*
列出以“pro”开头的当前目录中的所有文件。
注意:find命令默认为区分大小写。如果要搜索单词或短语不区分大小写,请使用-inamefind命令中的选项。这是-name命令的不区分大小写的版本。
3
如果find没有找到符合条件的任何文件,则不会产生任何输出。
find命令有很多选项可用于完善搜索。有关find命令的更多信息,请man find 在“终端”窗口中运行,然后按Enter键。
4
使用定位命令
locate命令比find命令更快,因为它使用了先前构建的数据库,而find命令通过所有实际目录和文件在实际系统中进行搜索。locate命令返回包含指定字符组的所有路径名的列表。
数据库从cron定期更新,但您也可以随时更新数据,以便您可以获得最新的结果。为此,请在提示符下键入以下命令:
sudo updatedb
出现提示时输入密码。
5
locate命令的基本形式从文件系统中找到包含搜索条件全部或部分内容的所有文件。
locate mydata
例如,上面的命令发现了两个包含“mydata”的文件和一个包含“数据”的文件
如果要查找包含完全唯一的搜索条件的所有文件或目录,请使用-blocate命令中的选项,如下所示。
locate-b'\ mydata'
上述命令中的反斜杠是一个globbing字符,它提供了将非特定文件名中的通配符扩展成一组特定文件名的方法。通配符是表达式被评估时可以被一个或多个字符替换的符号。最常见的通配符是问号(?),它表示单个字符,而asterisk(*)表示连续的字符串。在上面的例子中,反斜杠禁用“* mydata *”隐式替换“mydata”,所以最终只能包含“mydata”的结果。
mlocate命令是一个新的locate的实现。它索引整个文件系统,但搜索结果只包含当前用户可访问的文件。更新mlocate数据库时,它会在数据库中保留时间戳信息。这允许mlocate知道目录中的内容是否更改,而不再读取内容,并使数据库更新速度更快,对硬盘驱动器的要求也更低。
当您安装mlocate时,/ usr / bin / locate二进制文件更改为指向mlocate。要安装mlocate,如果尚未包括在Linux发行版中,请在提示符下键入以下命令。
sudo apt-get install mlocate
注意:我们将在本文后面显示一条命令,允许您确定命令的可执行文件所在的位置(如果存在)。
mlocate命令不使用与标准locate命令相同的数据库文件。因此,您可能需要在提示符下键入以下命令手动创建数据库:
sudo /etc/cron.daily/mlocate
在数据库手动创建数据库或从cron运行脚本之前,mlocate命令将不起作用。
有关locate或mlocate命令的详细信息,请键入man locate或man mlocate 在“终端”窗口中,然后按Enter键。两个命令显示相同的帮助屏幕。
6
使用哪个命令
“which”命令返回发出命令时调用的可执行文件的绝对路径。这在找到用于在桌面,面板或桌面管理器中的其他位置创建程序的快捷方式时可用于查找可执行文件的位置。例如,键入命令将which firefox 显示下图中显示的结果。
默认情况下,哪个命令只显示第一个匹配的可执行文件。要显示所有匹配的可执行文件,请使用-a以下命令的选项:
这是一个firefox
您可以一次搜索多个可执行文件,如下图所示。只显示找到的可执行文件的路径。在下面的例子中,只发现了“ps”可执行文件。
注意:哪个命令只搜索当前用户的PATH变量。如果搜索只能作为普通用户使用的root用户的可执行文件,则不会显示任何结果。
有关哪个命令的更多信息,请在终端窗口中的命令提示符下键入“man which”(不带引号),然后按Enter键。
7
使用Whereis命令
whereis命令用于查找命令的二进制文件,源文件和手册页文件所在的位置。例如,whereis firefox 在提示符下输入将显示如下图所示的结果
如果您只想要显示可执行文件的路径,而不是源和路径(man(页)),请使用该-b选项。例如,该命令whereis -b firefox将仅显示/usr/bin/firefox为结果。这很方便,因为您可能会比搜索该程序的源页面和手册页更频繁地搜索程序的可执行文件。您也可以仅搜索源文件(-s)或仅搜索手册页(-m)。
有关whereis命令的详细信息,请键入man whereis 终端窗口,然后按Enter键。
8
了解Whereis命令与哪个命令之间的区别
whereis命令显示命令的二进制,源和手册页的位置,而哪个命令仅显示命令的二进制文件的位置。
whereis命令搜索二进制,源和man文件的特定目录列表,而哪个命令搜索当前用户的PATH环境变量中列出的目录。对于whereis命令,可以在命令的手册页的FILES部分中找到具体目录的列表。
当涉及默认显示的结果时,whereis命令显示它找到的所有内容,而哪个命令只显示找到的第一个可执行文件。您可以使用-a前面讨论过的选项来更改该命令。
因为whereis命令只使用硬编码到命令中的路径,所以您可能并不总是找到您要查找的内容。如果您正在搜索一个程序,则认为可能安装在whereis命令的手册页中未列出的目录中,您可能希望使用该-a选项以查找系统中所有出现的命令,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)