[2019.03.25]Linux中的查找
TMUX天下第一
全世界所有用CLI Linux的人都应该用TMUX,我爱它!
======================== 以下是正文 ========================
Linux下面常用的搜索命令有这些:find locate grep which whereis。其中在我用的SuSE上,并没有locate,所以也不能用它神奇的手动更新数据库和"高速"索引查找,而grep是文字查找命令(但是配合某些命令共同执行有奇效)。下面我们来看一看他们都是干嘛的

上面四个窗格对应了四个不同的查找命令
|
grep: grep命令用于在文本文件中查找字符串,可以理解为不用打开文件就能找到文件里有没有某些内容。由于linux一切皆文件的特性,在输入某些带有返回值的命令(比如你用ls的时候他就返回给你很多内容,这个内容就是返回值)时,可以通过管道(就是上面命令里面的‘|’)把前一个命令的输出作为后一个命令的输入,于是乎grep就可以帮你“查找文件”了 用的时候: <command a> | grep [-P] '[Regular Expression]' 其中-P调用perl进行高级正则表达式调用,正则表达式外的单引号不可以缺少 |
which: which命令相对比较专一,所以也就比较菜。他只查找在环境变量里面的可执行文件(Linux Man Page里面讲它是用来搜索“Program”也就是“程序”的)。Linux不像Windows,它的环境变量真的长得像环境变量,查看则是输入“echo $PATH”,所以只有放在各种bin目录,并且这个bin目录被添加进path里面的程序才能被which命令找到。 注意,这个命令并不支持正则表达式,也不支持通配符*或是?,也就是说你得知道你要找的程序的全名 |
|
find: 这个命令是linux通用搜索命令,他会直接检索整个磁盘来找你输入的东西,支持的参数超过二十个,非常非常强大的同时,也非常非常慢,海峡对岸某些朋友称这个命令“操硬碟”。在此处我不打算讨论它,毕竟如上图所示我都完成剩下三个命令的实例加上截图操作,他都没有运行完…… |
whereis: 个人感觉比较鸡肋的一个命令……希望有识之士告诉小弟这个命令的独到之处。 如图所示他只能查找二进制bin、源代码src和帮助man这几个目录下面的东东,具体他检索那些目录,请使用whereis * 来查询 |
FIND 命令踩坑合集:
2019.03.25 update:
-name可以用通配符*,要使用正则表达式请使用-regex
——某些网站的教程是有Bug的,他们把所有的参数都标成了<范本样式>然而……大部分的“范本样式”不可以使用正则!
2019.03.28 update:
-regex匹配的是全路径,也就是说针对一个存放在/a/b/c/路径下面的文件dashboard.sh,针对它的文件名写find,如果用regex,写法是:
√:find / -regex ".*/dashboard.*"
×:find / -regex "dashboard.*" #实质上在找根目录下的dashboard
你也可以写成:
√:find / -name "dashbo*.sh" #适用于你真的记不起来全名了
2019.04.02 update:
虽然shell或是bash中允许你把 find / -name "dashbo*.sh" 写成 find / -name dashbo*.sh ,但是这样查找结果会不准确。原因是对于通配符,shell会将他展开。
参见:https://segmentfault.com/q/1010000003090158 此链接中 kemad 大神的解释。
其原理和:https://www.cnblogs.com/jackablack/p/10637181.html 中第一个坑的原理相同。
以上就是我的一些拙见,说实话find真的……学了用了快一个月还没搞明白具体如何运作的……惭愧
学明白了在把一些想法放上来吧!可怜的硬碟,要被 /usr/bin/find 艹啦!
[2019.03.25]Linux中的查找的更多相关文章
- [转帖]Linux教程(14)- Linux中的查找和替换
Linux教程(14)- Linux中的查找和替换 2018-08-22 07:03:58 钱婷婷 阅读数 46更多 分类专栏: Linux教程与操作 Linux教程与使用 版权声明:本文为博主原 ...
- 25 Linux中的信号
Linux中的信号 信号是进程在运行过程中,由自身产生或由进程外部发过来的消息(事件).每个信号用一个整型常量宏表示,以SIG开头,比如SIGCHLD.SIGINT等,它们在系统头文件中定义,也可以通 ...
- linux中的查找命令
which命令:使用which命令可以看到某个系统命令是否存在,以及执行的到底是哪一个位置上的命令.在PATH指定的路径中进行搜索, 返回第一个搜索结果. which grep /bin/grep ...
- Linux中的查找命令find
原文:http://blog.csdn.net/windone0109/article/details/2817792 查找目录:find /(查找范围) -name '查找关键字' -type d ...
- linux中的查找命令find,locate,which,whereis
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料,因为有时很长时间不会用到,当要用的时候经常弄混了. which 查看可执行文 ...
- linux中快速查找文件
在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访 ...
- Linux中文件查找,压缩和打包指令
1.文件的查找和搜索 可执行文件的搜索:which .whereis locate搜索文件 find搜索文件 1.1可执行文件的搜索 在Linux系统中,有成百上千个指令,不同 ...
- [2019.03.22] Linux 学习心得(1)
本文关键词:shell 判断.grep正则表达式使用和贪婪匹配理解 1. if [ $a -le $b ], 一开始自学的时候我以为 [ ... ] 就是普通的,语法规定的结构,结果其实人家是&quo ...
- 2019.03.25 git
Git简介: Git是一个分布式版本控制软件. 背景故事: Linus在1991年创建了开源的Linux. 在2002年以前:世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后Linu ...
随机推荐
- 事件Event一
事件(Event)例如:最近的视觉中国'黑洞事件'.我们大多数人(订阅者)是通过XX平台(发布者)得知的这一消息,然后订阅者A出售视觉中国的股票(触发的方法),订阅者B买入视觉中国的股票. using ...
- 基于vue.js的简单用户管理
功能描述:添加.修改.搜索过滤 效果图: <!DOCTYPE html> <html lang="en"> <head> <title&g ...
- Raptor井字棋游戏
作为大学第一个小作品,记录一下,也给那些想接触到Raptor游戏的人一个小小的参考QAQ至于Raptor的语法和使用,可以参考一下他的帮助手册,看不懂英文的话可以复制放到翻译上看. 以上是主函数 以下 ...
- ABAP案例:灵活读取SAP各表的数据
案例说明 RFC读取表中数据. Import 参数名称 Type spec. 参考打印 FIELDS_NAME1 TYPE CHAR25 TABLE_NAME1 TYPE CHAR25 WHE ...
- 使用C# 操作存储过程,执行sql语句通用类
如何使用C# 操作存储过程,执行sql语句? 闲话不多说,直接上代码: /// <summary> /// Sql通用类 /// </summary> ...
- Spring 中 IoC 容器简介
IoC 是一种通过描述来生成或者获取对象的技术,可以说 Spring 是一种基于 IoC 容器编程的框架 在一个系统中可以生成各种对象,并且这些对象都需要进行管理.为了描述这些对象关系,我们需要一个容 ...
- div在另一个div居中对齐
position:fixed; top:0; right:0; left:0; bottom:0; margin:auto;
- 山西大同大学教务处学生端--送给学弟,学妹的礼物,可在PC端,手机端操作
解决问题:大同大学教务处官网学生端口一进去就卡住了,点上面一行的菜单无响应 转眼已是四年,想想自己大学即将结束,不由得让人感慨啊.这才刚开学几天,我就听到有同学在因为补考,选课的事情发愁.学校官方的教 ...
- (办公)springboot配置表单验证@Valid
项目用到了springboot,本来很高兴,但是项目里什么东西都没有,验证,全局异常这些都需要自己区配置.最近springboot用的还是蛮多的,我还是做事情,把经验发表一下. SpringBoot提 ...
- C#的扩展方法(this)
先在StringLibrary类中定义一个静态方法,如下: public static class StringLibrary { //第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰 ...