您当前的位置: 首页 >  linux

我什么都布吉岛

暂无认证

  • 4浏览

    0关注

    292博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

每天学点Linux(十)查找文件

我什么都布吉岛 发布时间:2018-07-05 15:02:23 ,浏览量:4

参考资料: [1]Linux中文件的五个查找命令总结 [2]type命令 [3]whereis命令 [4]linux下的locate命令的使用

在Windows下可以通过GUI界面直接输入一些关键字查找文件,那么Linux下如何查找某个文件?

  • which:在环境变量中寻找系统命令的位置,返回第一个结果
  • type:用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令
  • whereis:程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)
  • find:最常用和最强大的查找命令,可以用它找到任何想找的文件
  • locate:相当于find -name,可快速查找文件
which查看环境变量中实际使用的命令位置

格式也相当简单:

which 你要查看的程序名称

假如我们要找的程序名称叫做python。

wodeMBP:~ wo$ which python
/anaconda3/bin/python
wodeMBP:~ wo$ 

这里我的电脑里面有python,所以他直接返回了一个路径。

如果查找一个不存在的程序名称:ppap

wodeMBP:~ wo$ which ppap
wodeMBP:~ wo$ 

ppap我这里环境中根本没有,所什么也没打印

type判断命令类型

命令的分类有很多种

命令类型解释alias别名keyword关键字,Shell保留字。function函数,Shell函数。builtin内建命令,Shell内建命令。file文件,磁盘文件,外部命令。unfound没有找到。

格式:

type 文件名
wodeMBP:~ wo$ type python
python is /anaconda3/bin/python

wodeMBP:~ wo$ type cd
cd is a shell builtin

wodeMBP:~ wo$ type if
if is a shell keyword

wodeMBP:~ wo$ type which
which is hashed (/usr/bin/which)

wodeMBP:~ wo$ type ppap
-bash: type: ppap: not found
whereis搜索二进制、man文档以及源代码

whereis和locate寻找的数据是由已创建的数据 /var/lib/ 中查找

wodeMBP:~ wo$ whereis python
/usr/bin/python

whereis和locate寻找的数据是由已创建的数据 /var/lib/ 中查找。但是数据库的更新默认是每天更新一次(不同系统可能会有差异),所以当新建文件或删除文件后去查找该文件,whereis和locate会告诉你文件“not found”,因为必须更新数据库了。 要手动更新数据库的方法也很简单,直接输入updatedb即可。updatedb命令回去读取/etc/updatedb.conf中的配置,然后去硬盘里面进行查找文件名操作,最后更新整个数据库文件。

find命令

格式

find [PATH] [option] [action]

例子:假如我的桌面上有一个文件叫做ppap的文件:

find / -name ppap

如果你不给定搜索路径,那么它默认是在当前目录下查找。举个例子:

sudo find / -iname "gdb-m*" # 大小写忽略,sudo避免权限问题
sudo find / -name "gdb-m*"  # 考虑大小写

指定文件目录下递归查找:

wodeMBP:Desktop wo$ find ~/Desktop/ ppap
/Users/wo/Desktop/
/Users/wo/Desktop//.banana.swp
/Users/wo/Desktop//.DS_Store
/Users/wo/Desktop//.localized
/Users/wo/Desktop//apple.c
/Users/wo/Desktop//main.c
/Users/wo/Desktop//.cat.swp
/Users/wo/Desktop//main
/Users/wo/Desktop//.server.c.swp
/Users/wo/Desktop//ppap
/Users/wo/Desktop//.apple.swp
ppap
wodeMBP:Desktop wo$ 

很多乱七八糟的文件,但是还是找到了我们要的ppap,当然也可以指定搜索层级-Maxdepth classnum

locate命令

这是一种基于数据库检索的一种命令,比较快。但是要注意更新databd。 Mac下的这个总是有点不一样,这里我在ubuntu正常使用:

locate apple.c
/root/Desktop/apple.c

再提一点,locate选项中有一个 -r, 支持正则表达式搜索。举个例子

locate -r /*pie$ #查找以pie结尾的文件,使用之前注意更新updatedb 
关注
打赏
1658157489
查看更多评论
立即登录/注册

微信扫码登录

0.2023s