本实训主要讲解Linux
中文件查找和定位方法。
Linux
系统中查找文件的方法不同于Windows
系统,在Windows
系统中查找文件的方法比较容易,只要在桌面上点击“开始”-“搜索”中就能按照各种方式进行查找,对于Linux
新手来讲,在Linux
系统中查找一个文件比较空难,它不像Windows
那样方便,在Linux
中通常使用命令来查找文件,常见查找文件的命令有locate
、which
、whereis
和find
等。
本实训主要讲解如何在Linux
系统中查找文件/目录。
相关知识(使用locate
命令查找系统中的文件)
locate
locate
命令用来查找文件或目录。
locate
命令要比其他查找文件命令(例如:find
)快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db
。
/var/lib/mlocate/mlocate.db
这个数据库中含有本地所有文件信息。Linux 系统自动创建这个数据库,并且每天自动更新一次,因此,我们在用locate
查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。为了避免这种情况,可以在使用locate
之前,先使用updatedb
命令,手动更新数据库。
接下让我们详细的学习locate
和updatedb
的使用方法。
locate
具体命令如下:
locate 命令参数 文件/目录
常用命令参数如下:
-c, --count 只输出找到的数量;
-d, --database DBPATH 使用DBPATH指定的数据库,而不是默认数据库/var/lib/mlocate/mlocate.db;
-i, --ignore-case 忽略大小写;
-q, --quiet 安静模式,不会显示任何错误讯息;
-e, --existing 只显示当前存在的文件条目;
案例演示1
:
搜索etc
目录下以pass
开头的文件或目录,具体使用如下命令:
locate /etc/pass
案例演示2
:
搜索包含passwd
字母的文件或目录总个数,具体使用如下命令:
locate -c passwd
updatedb
updatedb
命令用来创建或更新locate
命令所必需的数据库文件。
updatedb
命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入locate
数据库文件中。
具体命令如下:
updatedb 命令参数
常用参数如下:
-o<文件>:忽略默认的数据库文件,使用指定的slocate数据库文件;
-U<目录>:更新指定目录的slocate数据库;
-v:显示执行的详细过程;
执行权限:updatedb
必须以root
权限才能执行,如果是普通用户想执行updatedb
时,需要在命令前加sudo
命令来提升权限为root
权限。
案例演示