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

参考资料:
[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 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值