6.5 指令与文件的搜寻

news2025/1/12 18:09:02

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.coloradmin.cn/o/703819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iOS distribution发布证书过期或者被手动revoke了app会被下架吗?

在距离distribution 证书过期一个月(或被手动revoke了)的时候会受到apple的邮件 虽然distribution过期(或者被手动revoke)了,如果你的开发者账号是company(公司)类型或个人类型的,只…

LDR6023Q在USB摄像头转接器的应用

最近USB摄像头火了起来,连接手机后可以用于直播,内窥镜,探鱼器,上网课等等,应用非常广泛,但在长时间连接手机的时候,电量消耗特别快,所以USB摄像头转接器应运而生。 USB摄像头转接器…

多元回归预测 | Matlab海鸥算法(SOA)优化极限学习机ELM回归预测,SOA-ELM回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab海鸥算法(SOA)优化极限学习机ELM回归预测,SOA-ELM回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环…

我的创作纪念日(一周年)

机缘 作为一位互联网安全专业的大一学生,我始终怀抱着提升自身技术能力、保护网络安全、推动互联网世界发展的初心。 通过实战项目的经验分享,我收获颇多。参与团队网络安全演练与攻防对抗,使我学会了应对不同类型攻击与漏洞,提…

vue(typescript)项目在vs中打开出现的各种问题

目录 vue3 报错解决:找不到模块或其相应的类型声明。(Vue 3 can not find module) (TS) 未知的编译器选项“allowImportingTsExtensions”。 TS6046 (TS) “--moduleResolution”选项的参数必须为 node, classic, node16, nodenext。…

FinalShell连接不上Ubantu

解决方法 1.ssh服务问题 1.先安装openssh-server服务 sudo apt install aopenssh-server 2.重启ssh服务 sudo systemctl restart ssh 2.防火墙问题 1. 直接关闭防火墙(最省时) ufw stop 2. 开放FinalShell要连接的端口号,下图。 ufw allow 22

python使用WxPusher自动向微信发送信息

Github地址:https://github.com/wxpusher/wxpusher-docs Demo演示功能:https://wxpusher.zjiecode.com/demo/ 使用说明文档:https://wxpusher.zjiecode.com/docs/#/ 使用方法 首先进入网址:https://wxpusher.zjiecode.com/admi…

【Linux】4、BootLoader:UBoot | BIOS、BMC 介绍

文章目录 一、bootloader1.1 uboot 二、BIOS2.1 grub 三、BMC3.1 原理3.2 使用场景3.3 IPMI 规范3.4 配置和使用3.4.1 通过 ipmitool 设置 BMC IP3.4.2 通过 BIOS 设置 BMC IP 一、bootloader 参考 windows开机时会首先加载bios,然后是系统内核,最后启…

糟糕透了!知识答题PK出线上bug了!复盘与总结一下吧

糟糕透了!知识答题PK出线上bug了!我来进行复盘与总结一下吧。 主要两大问题: 1、服务器问题:云数据库watch监听报错的问题; 2、卡bug问题:匹配成功或者pk开始后,有人中途退出的问题;…

数据库监控与调优【十九】—— SQL调优实战

SQL调优实战 SQL调优实战1-常规调优 项目建表语句 -- ---------------------------- -- Table structure for carousel -- ---------------------------- DROP TABLE IF EXISTS carousel; CREATE TABLE carousel (id varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_09…

找不到mfc140u.dll怎么解决?mfc140u.dll丢失的三个解决方法

在使用Windows操作系统的时候,即使更新到最新系统,电脑系统偶尔也会出现系统报错,这个是由于Windows系统的开放性导致的。在系统报错的时候,只需要找对修复方法,对其进行修复即可,比如提示“由于找不到mfc1…

oracle只读打开数据库

客户经常有这样的需求,数据库已迁移,但还是希望原库可以打开,就只能只读模式打开了 方法一 SYSorcl> STARTUP OPEN READ ONLY; ORACLE instance started. Total System Global Area 4.0086E10 bytes Fixed Size 22549…

浅谈 Android Tombstone(墓碑日志)分析步骤

最近项目产品刚刚出货,客户退机、死机事件频发。日常解决bug中,少不了和墓碑日志打交道,截止今天之前,见到墓碑日志都是一脸懵逼,不知道怎么分析。最近又有了两个日志,硬着头皮看吧。之所以称之为浅谈&…

fail-safe 机制与 fail-fast 机制分别有什么作用

fail-safe 和 fail-fast ,是多线程并发操作集合时的一种失败处理机制。 Fail-fast : 表示快速失败,在集合遍历过程中,一旦发现容器中的数据被修改了,会立刻抛ConcurrentModificationException 异常,从而导致…

蓝奥声开发高性价比智能wifi插座进军智能家居

智能硬件的大潮袭来让智能家居这一并不新鲜的概念再次火热起来,关于智能家居的各种场景的描述给了我们很大的想象空间,然而落到实处真正开始走进生活时却又显得那么骨感,一时间作为智能家居的控制中介,小巧实用智能插座就成为家居…

多元分类预测 | Matlab粒子群算法(PSO)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,PSO-HKELM分类预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元分类预测 | Matlab粒子群算法(PSO)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,PSO-HKELM分类预测 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matl…

C++ 内联函数基本概念学习

https://blog.csdn.net/bcbobo21cn/article/details/71305186 这里是一些内联函数示例;有时间再逐个看; 学习一下内联函数的基本概念; 其基本概念有三点; 函数调用都有开销;如果函数体代码比较多,那么…

物业租赁管理系统

物业租赁管理系统是现代宏观经济下的必备产品。随着城市化的加速和移民进城的人口数量的增加,房屋租赁业务市场得到了前所未有的爆发式增长。在这个市场中,物业租赁管理系统成为了各大物业公司的重要工具,有助于物业公司更加有效地管理各种房…

Python_类对象、实例对象、类属性、实例属性、类方法、实例方法

目录 认识类对象、实例对象、类属性、实例属性、类方法、实例方法 类对象实例化过程中的内存分配说明 认识类对象、实例对象、类属性、实例属性、类方法、实例方法 类对象:定义的类就是类对象实例对象:类对象实例化后就是实例对象类属性:定…

HarmonyOS/OpenHarmony应用开发-Stage模型应用程序包结构

基于Stage模型开发的应用,经编译打包后,其应用程序包结构如下图应用程序包结构(Stage模型)所示。开发者需要熟悉应用程序包结构相关的基本概念。 在开发态,一个应用包含一个或者多个Module,可以在DevEco S…