您的位置:首页 > 其它

【Ubuntu】Ubuntu查找文件的命令

2017-10-19 00:56 381 查看

find

find
命令准确,但速度非常慢,它可以查找任何类型的文件

使用格式如下

find [指定目录] [指定条件] [指定动作]


参数说明

[指定目录]: 所要搜索的目录及其所有子目录。默认为当前目录

[指定条件]: 所要搜索的文件的特征

[指定动作]: 对搜索结果进行特定的处理

常用的[指定条件]

-name:按文件名来查找文件

-user:按照文件的属主来查找文件

-group:按照文件所属的组来查找文件

-perm:按照文件权限来查找文件

-prune:不在当前指定目录中查找

常用的[指定动作]

-print:将匹配的文件输出到标准输出

-exec:对匹配的文件执行该参数所给出的shell命令

-ok:和-exec的作用相同,在执行每一个命令之前,让用户来确定是否执行

find
命令不加任何参数时,表示搜索路径为当前目录及其子目录,默认的动作为
-print
,即不过滤任何结果,也就是说输出所有的文件

使用实例

递归搜索当前目录中,所有以
file
开头的文件

find . -name 'file*'


递归搜索当前目录中,所有以
file
开头的文件,并显示它们的详细信息

find . -name 'file*' -ls


locate

locate
命令可以说是
find -name
的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库
/var/lib/locatedb
,这个数据库中含有本地所有文件信息

Linux自动创建这个数据库,并且每天自动更新一次,所以使用
locate
命令查不到最新变动过的文件。为了避免这种情况,可以在使用
locate
之前,先使用
updatedb
命令,手动更新数据库

使用格式如下

locate [参数] <文件名>


使用实例

搜索
etc
目录下所有以
file
开头的文件

locate /etc/file


搜索用户主目录下,所有以
f
开头的文件,并且忽略大小写

locate -i ~/f


whereis

whereis
命令只能搜索特定格式的文件

使用格式如下

whereis [参数] <文件名>


可搜索的文件类型

二进制文件(-b)

源代码文件(-s)

说明文件(-m)

如果省略参数,则返回所有信息

使用实例

找出名为
find
的文件位置

whereis find


which

which
命令的作用是,在
PATH
变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果

也就是说,使用
which
命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令

使用格式如下

which <命令>


使用实例

查找
find
命令的位置

which find


type

type
命令其实不能算查找命令,它是用来区分某个命令到底是由
shell
自带的,还是由
shell
外部的独立二进制文件提供的

如果一个命令是外部命令,那么使用
-p
参数,会显示该命令的路径,相当于
which
命令

使用格式如下

type <命令>


使用实例

type cd


系统会提示,
cd
shell
的自带命令
build-in


type grep


系统会提示,
grep
是一个外部命令,并显示该命令的路径

type -p grep


加上
-p
参数后,就相当于which命令

感觉比较好用的是
locate
命令,速度非常快,还能达到
find
命令一样的准确,只需要先用
updatedb
命令更新数据库
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ubuntu 搜索 查找 文件