我们在管理Linux服务器时通常会进行搜索文件及目录操作,下面我们就开始了解一下linux目录结构的相关知识。

博主再奉上一套零基础入门Linux视频,带你从入门到精通

https://www.bilibili.com/video/BV1Li4y1V7pG

指令文件名的搜寻

1. which(寻找可执行文件)

命令:which 【-a】 command

-a : 将所有有PATH目录中可以找到的指令均列出

例1: 搜寻ifconfig这个指令的完整文件名

例2:找出which的文件名

竟然会有两个 which ,其中一个是 alias 这玩意儿呢!那是啥?

那就是所谓的“命令别名”,意思是输入 which 会等于后面接的那串指令啦!

例3:找出history这个指令的完整文件名

在上图我们发现history这个指令招不到,我们的root命令是可以执行history这个命令的

注意点:

which这个指令是找的PATH这个环境变量所规范的路径,但是有的指令是是bash内置的指令,所有which搜索不到,那么要搜索bash的指令就需要使用type

文件文件名的搜寻

在linux下有三个指令来搜索文件名

  • find
  • whereis
  • locate

1. whereis(只能在特定目录寻找文件名)

whereis 主要是针对 /bin /sbin 下面的可执行文件, 以及 /usr/share/man 下面的 man page 文件

参数

  • -l :可以列出 whereis 会去查询的几个主要目录而已
  • -b :只找 binary 格式的文件
  • -m :只找在说明文档 manual 路径下的文件
  • -s :只找 source 来源文件
  • -u :搜寻不在上述三个项目当中的其他特殊文件

whereis这个命令可以搜索到的文件可以使用whereis -l来查看

这个图没有截取完,可以自己去试着查看

2. localte

  • -i :忽略大小写的差异;
  • -c :不输出文件名,仅计算找到的文件数量
  • -l :仅输出几行的意思,例如输出五行则是 -l 5
  • -S :输出 locate 所使用的数据库文件的相关信息,包括该数据库纪录的文件/目录数量等
  • -r :后面可接正则表达式的显示方式

例1:找出passwd的文件,只列出5个

例2:寻找我们自己创建的文件

确实很方便的

3. locate的寻找速度

由于locate指令是直接在已创建的数据库/var/lib/mlocate里边的数据,所以是很快的。

关于这个数据库是每天都会更新一次的

4. 关于locate数据库更新

这个数据库是每天都会更新一次的,但是有个问题就是假如你新创建了一个文件,但是没有达到这个更新时间,那么就查不到的,下面我们来试验一下

上图会发现是搜索不到的。

那么我们就到了我们的updatedb这个指令上场了,这个时候就可以查到了

5. find指令时间相关的查询

find指令的用法就非常多了下来我们一点一点的解析

与时间相关的参数

  • -mtime n :n 为数字,意义为在 n 天之前的“一天之内”被更动过内容的文件;
  • -mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的文件文件名;
  • -mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的文件文件名。
  • -newer file :file 为一个存在的文件,列出比 file 还要新的文件文件名

例1:找出系统24小时内有过改动的文件

find / -mtime 0

  • +4代表大于等于5天前的文件名:ex> find /var -mtime +4
  • -4代表小于等于4天内的文件文件名:ex> find /var -mtime -4
  • 4则是代表4-5那一天的文件文件名:ex> find /var -mtime 4

6. find指令使用者或者群组文件的查询

  • -uid n :n 为数字,这个数字是使用者的帐号 ID,亦即 UID ,这个 UID 是记录在/etc/passwd 里面与帐号名称对应的数字
  • -gid n :n 为数字,这个数字是群组名称的 ID,亦即 GID,这个 GID 记录在/etc/group,
  • -user name :name 为使用者帐号名称喔!例如 dmtsai
  • -group name:name 为群组名称喔,例如 users ;
  • -nouser :寻找文件的拥有者不存在 /etc/passwd 的人!
  • -nogroup :寻找文件的拥有群组不存在于 /etc/group 的文件!当你自行安装软件时,很可能该软件的属性当中并没有文件拥有者,

这是可能的!在这个时候,就可以使用 -nouser 与 -nogroup 搜寻。

例1:搜寻/learn下面属于kaka用户的文件

例2:搜索属于kaka群组的文件

例3:搜寻不属于任何人的文件

find / -nouser

7. 搜寻文件名称跟权限的文件

  • -name filename:搜寻文件名称为 filename 的文件;
  • -size [±]SIZE:搜寻比 SIZE 还要大(+)或小(-)的文件。这个 SIZE 的规格有:c: 代表 Byte, k: 代表 1024Bytes。所以,要找比 50KB还要大的文件,就是“ -size +50k ”
  • -type TYPE :搜寻文件的类型为 TYPE 的,类型主要有:一般正规文件 (f), 设备文件 (b, c),目录 (d), 链接文件 (l), socket (s), 及 FIFO (p) 等属性。
  • -perm mode :搜寻文件权限“刚好等于” mode 的文件,这个 mode 为类似 chmod的属性值,举例来说, -rwsr-xr-x 的属性为 4755 !
  • -perm -mode :搜寻文件权限“必须要全部囊括 mode 的权限”的文件,举例来说,我们要搜寻 -rwxr–r-- ,亦即 0744 的文件,使用 -perm -0744,当一个文件的权限为 -rwsr-xr-x ,亦即 4755 时,也会被列出来,因为 -rwsr-xr-x 的属性已经囊括了 -rwxr–r-- 的属性了。
  • -perm /mode :搜寻文件权限“包含任一 mode 的权限”的文件,举例来说,我们搜寻-rwxr-xr-x ,亦即 -perm /755 时,但一个文件属性为 -rw-------也会被列出来,因为他有 -rw… 的属性存在!

例1:找出文件名为kaka.php的文件

例2:找出文件名包含kaka的文件

例3:找出learn下的目录

关于perm特殊权限的搜索就不写了,没有多大的意义

————————————————

详解Linux指令与文件的搜寻的更多相关文章

  1. Linux进程上下文切换过程context_switch详解--Linux进程的管理与调度(二十一)

    1 前景回顾 1.1 Linux的调度器组成 2个调度器 可以用两种方法来激活调度 一种是直接的, 比如进程打算睡眠或出于其他原因放弃CPU 另一种是通过周期性的机制, 以固定的频率运行, 不时的检测 ...

  2. Linux下ps命令详解 Linux下ps命令的详细使用方法

    http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...

  3. linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)

    linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...

  4. 详解linux运维工程师入门级必备技能

    详解linux运维工程师入门级必备技能 | 浏览:659 | 更新:2013-12-24 23:23 | 标签:linux it自动化运维就是要很方便的运用各种工具进行管理维护,有效的实施服务器保护 ...

  5. linux dmesg命令参数及用法详解(linux显示开机信息命令)

    linux dmesg命令参数及用法详解(linux显示开机信息命令) http://blog.csdn.net/zhongyhc/article/details/8909905 功能说明:显示开机信 ...

  6. 详解Linux下swig 3.0.12的手动安装过程

    详解Linux下swig 3.0.12的手动安装过程 首先 从http://www.linuxfromscratch.org/blfs/view/cvs/general/swig.html上下载swi ...

  7. linux下sort命令使用详解---linux将文本文件内容加以排序命令

    转载自:http://www.cnblogs.com/hitwtx/archive/2011/12/03/2274592.html linux下sort命令使用详解---linux将文本文件内容加以排 ...

  8. 详解Linux安装GCC

    为你详解Linux安装GCC方法 2009-12-11 14:05 佚名 博客园 字号:T | T 现在很多程序员都应用GCC,怎样才能更好的应用GCC.本文以在Redhat Linux安装GCC4. ...

  9. 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路

    做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...

随机推荐

  1. 处理XML数据应用实践

    摘要:GaussDB(DWS)支持XML数据类型及丰富的XML解析函数,可实现关系数据和XML数据的映射管理功能. XML概述 XML是可扩展的标识语言(eXtensible Markup Langu ...

  2. Java基础语法:标识符

    Java所有的组成部分都需要名字. 类名.变量名 以及方法名 都被称为标识符. 一.规则 Ⅰ.首字符 规则:所有的标识符都应该以字母(A-Z 或者 a-z).美元符($).下划线(_)开始. 示例:t ...

  3. 第48天学习打卡(HTML 行内元素和块元素 列表 表格 视频和音频 页面结构分析 iframe内联框架 表单语法 )

    行内元素和块元素 块元素 ​ 无论内容多少,该元素独占一行 ​ (p.h1-h6) 行内元素 ​ 内容撑开宽度,左右都是行内元素的可以排在一行 ​ (a.strong.em...) 列表 什么是列表 ...

  4. SpringCloud(三):SpringCloud快速开发入门

    3-1.  搭建和配置一个服务提供者 我们知道,SpringCloud 构建微服务是基于 SpringBoot 开发的.(如果SpringBoot不会的可以先看SpringBoot专栏) 1. 创建一 ...

  5. Win10下ctrl与alt键互换

    我之前尝试过用第三方软件修改,但是总是不成功,后来发现直接去修改注册表也不麻烦,记录一下步骤. win + r 输入 regedit 进到这个路径 点击Keyboard Layout 右键,新建一个 ...

  6. 【pytest官方文档】解读fixtures - 1.什么是fixtures

    在深入了解fixture之前,让我们先看看什么是测试. 一.测试的构成 其实说白了,测试就是在特定的环境.特定的场景下.执行特定的行为,然后确认结果与期望的是否一致. 就拿最常见的登录来说,完成一次正 ...

  7. 鸿蒙开源第三方件组件——轮播组件Banner

    目录: 1.功能展示 2.Sample解析 3.Library解析 4.<鸿蒙开源第三方组件>系列文章合集 前言 基于安卓平台的轮播组件Banner(https://github.com/ ...

  8. WAV16T VPX国产化千兆交换板

      WAV16T是基于盛科CTC5160设计的国产化3U三层千兆VPX交换板,提供16路千兆电口,采用龙芯 2K1000处理器.支持常规的L2/L3协议,支持Telnet.SNMP.WEB,CLI等多 ...

  9. Apache配置 11. 访问控制-user_agent

    (1)介绍 user_agent是指用户浏览器端的信息.比如你是用IE的还是Firefox浏览器的.有些网站会根据这个来调整打开网站的类型,如是手机的就打开wap,显示非手机的就打开PC常规页面. ( ...

  10. SpringBoot 访问jsp文件报错Path with "WEB-INF" or "META-INF": [WEB-INF/jsp/welcome.jsp]的解决办法

    由于SpringBoot不在支持jsp,所以想使用jsp的情况下需要在pom.xml配置servlet依赖,jstl标签库和tomcat依赖.以下是我的pom.xml的配置: (ps:标记红色处为重点 ...