6.5 指令与文件的搜寻

news/2025/1/15 12:57:44/

6.5.1 指令文件名的搜寻

在终端机模式当中,连续输入两次[tab]按键就能够知道使用者有多少指令可以下达。

which (寻找“可执行文件”)

这个指令是根据“PATH”这个环境变量所规范的路径,去搜寻“可执行文件”的文件名。所以,重点是找出“可执行文件”而已!且 which 后面接的是“完整文件名”。若加上 -a 选项,则可以列出所有的可以找到的同名可执行文件,而非仅显示第一个而已。

6.5.2 文件文件名的搜寻

whereis (由一些特定的目录中寻找文件文件名)

whereis可以加入选项来找寻相关的数据,例如,如果你要找可可执行文件(binary),那么加上-b就可以。如果不加任何选项的话,那么就将所有的数据列出来。

whereis主要是针对/bin/sbin下面的可执行文件,以及 /usr/share/man 下面的 man page 文件,跟几个比较特定的目录来处理而已。

locate / updatedb

locate的使用很简单,直接在后面输入“文件的部分名称”后,就能够得到结果。如上面,输入locate passwd,那么在完整文件名(包括路径名称)当中,只要有passwd在其中,就会被显示出来。这也是很方便好用的指令,如果忘记某个文件完整文件名时。

现使用 locate 来寻找数据的时候特别的快, 这是因为 locate 寻找的数据是由“已创建的数据库 /var/lib/mlocate/” 里面的数据所搜寻到的,所以不用直接在去硬盘当中存取数据。

直接输入“updatedb”可以手动更新数据库。updatedb指令会去读取/etc/updatedb.conf这个配置文件的设置,然后再去硬盘里面进行文件名的动作,最后就更新整个数据库文件。因为updatedb会去搜寻硬盘,所以当你执行updatedb时,可能会等待数分钟的时间。

updatedb:根据 /etc/updatedb.conf 的设置去搜寻系统硬盘内的文件名,并更新/var/lib/mlocate 内的数据库文件;

locate:依据 /var/lib/mlocate 内的数据库记载,找出使用者输入的关键字文件名。

find

图中最右边为目前的时间,越往左边则代表越早之前的时间轴啦。由图 6.5.1 我们可以清楚的知道:

+4代表大于等于5天前的文件名:ex> find /var -mtime +4

-4代表小于等于4天内的文件文件名:ex> find /var -mtime -4

4则是代表4-5那一天的文件文件名:ex> find /var -mtime 4

-nouser 或 -nogroup 的选项功能中,除了你自行由网络上面下载文件时会发生之外, 如果你将系统里面某个帐号删除了,但是该帐号已经在系统内创建很多文件时,就可能会发生无主孤魂的文件存在! 此时你就得使用这个 -nouser 来找出该类型的文件。

SUID 与 SGID 都可以设置在二进制程序上,假设我想要找出来 /usr/bin, /usr/sbin 这两个目录下, 只要具有 SUID 或 SGID 就列出来该文件,你可以这样做:

因为 SUID 是 4 分,SGID 2 分,总共为 6 分,因此可用 /6000 来处理这个权限! 至于 find后面可以接多个目录来进行搜寻!另外, find 本来就会搜寻次目录,这个特色也要特别注意。

find 的特殊功能就是能够进行额外的动作(action)。我们将范例八的例子以图解来说明如下:

该范例中特殊的地方有 {} 以及 \; 还有 -exec 这个关键字,这些东西的意义为:

{} 代表的是“由 find 找到的内容”,如上图所示,find 的结果会被放置到 {} 位置中;

-exec 一直到 \; 是关键字,代表 find 额外动作的开始 (-exec) 到结束 (\;) ,在这中间的就是 find 指令内的额外动作。 在本例中就是“ ls -l {} ”。

因为“ ; ”在 bash 环境下是有特殊意义的,因此利用反斜线来跳脱。

如果要找的文件是具有特殊属性的,例如SUID、文件拥有者、文件大小等,那么利用locate是没有办法搜寻的,此时find就很重要。另外,find还可以利用万用字符来找寻文件名。想要找出/etc下面文件名包含httqd的文件,那么就可以这样:

不但可以指定搜寻的目录(连同次目录),并且可以利用额外的选项与参数来找到最正确的文件名。使用find比较废硬盘,所以尽量不要用find,尽量用whereis和locate。


http://www.ppmy.cn/news/670819.html

相关文章

黑玛瑙雄伟的黑色宝石石

黑玛瑙雄伟的黑色宝石石   玛瑙是石英形成了多种隐的。红玛瑙是容易识别的颜色存在于石头的各种频段。这些色带可以发生在任何阴影,除了蓝色和紫色。平均来说,红玛瑙通常含有带是白色,棕色和棕褐色。   这个名字来自希腊字缟玛瑙这意味着…

英语SouthRedAgate南红玛瑙southredagate单词

南红SouthRedAgate玛瑙 南红玛瑙(SouthRedAgate)是玛瑙的一个种类,古称”赤玉”,质地细腻油润,是中国独有的品种。由于产量稀少,老南红玛瑙价格急剧上升。南红玛瑙曾被古人用之入药,养心养血。 现在的南红SouthRedAg…

第六届 蓝桥杯 第七题 手链样式 枚举 暴力 解题报告

手链样式 小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。 他想用它们串成一圈作为手链,送给女朋友。 现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢? 请你提交该整数。不要填写任…

2019-7-28 [MySQL] 多表查询 交叉连接查 笛卡尔积 内连接查询[隐式/显式] 外连接查询[左/右] 子查询[单行单列/单行多列/多行多列] 连接查询区别

文章目录 1.多表查询1.1 需求分析1.2 初始化数据1.2.1 向商品类别表中添加数据1.2.2 向商品表中添加数据 1.3 多表查询1.3.1 交叉连接查询(基本不会使用-得到的是两个表的乘积) [了解]1.3.1.1 笛卡尔积 :1.3.1.1 解决笛卡尔积: 1.3.2 内连接查询(使用的关键字 inner join -- in…

手链样式

小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。 他想用它们串成一圈作为手链,送给女朋友。 现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢? 请你提交该整数。不要填写任何多余…

2015第6届蓝桥杯A组第7题 手链样式 题解

题目: 手链样式 小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。 他想用它们串成一圈作为手链,送给女朋友。 现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢? 请你…

蓝桥杯试题集

蓝桥杯搜索模拟暴力题: 题目: 手链样式 小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。 他想用它们串成一圈作为手链,送给女朋友。 现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同…

(六省)蓝桥真题 手链样式

手链样式 小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。 他想用它们串成一圈作为手链,送给女朋友。 现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢? 请你提交该整数。不要填写…