美文网首页
linux学习笔记-day8-搜索文件

linux学习笔记-day8-搜索文件

作者: whatcanhumando | 来源:发表于2018-09-20 21:49 被阅读4次

which命令可以搜索可执行文件的绝对路径,这里的可执行文件只能是已经在PATH目录中的。

which java

whereis命令类似于模糊查询,只能查找可执行文件、帮助文件,源代码文件。它比which命令功能强大一点,还支持3个选项对查找的文件做进一步细分,-bmsb表示二进制文件,m表示帮文件,s表示源代码文件。这个命令会把所有包含所查找的字符文件全部列出来。

locate命令可以搜索操作系统中的所有文件,将所有文件和目录的绝对路径为单位进行搜索。只要某个文件或者目录中有包含查找的字符它就认为是匹配的。这很像我在日常工作中用到的everything。而且更像everything的一点是这个命令不是傻瓜式的将所有文件比对一次,而是事先生成一个用于查找的数据库,运行这个命令的时候从数据库中查找匹配项,所以速度非常快。

但同时locate也有缺点,因为需要事先生成数据库,所有如果新建了一个文件但是数据库还没有更新,那行用这个命令是无法搜索到的。手动更新数据库的命令为 updatedb没有参数。由于我在学习的linux机器文件并不多,但是网上资料说这个更新数据库很耗CPU,在生产服务器上要慎重运行。

我自己和笔记本是ubuntu18版本,但是在我另外一台笔记本的centeros7虚拟机中默认没有这个命令。需要另外用yum安装

yum install -y mlocate

find命令是最强大的文件搜索命令,当然同时也是最复杂的搜索命令,格式如下:

find [路径] [参数]

最常用的3个参数

  • -atime +n/-n (access time)表示访问或执行时间大于n天或小于n天的文件
  • -ctime +n/-n (change time)表示文件修改时间大于n天或小于n天的文件
  • -mtime +n/-n(modify time)表示文件内容修改时间大于n天或小于n天的文件
fimd . -mtime +10

以上命令表示查找当前目录下所有10天前修改过的文件。 以上3个选项的时间单位是天,也可以将time替换为min,后需的n单位就变为分钟。

在linux中在硬盘在都会有一个区域用来存储文件本身的信息,在大学里学过操作系统基本知识或者用C语言操作过文件的人都很清楚。操作系统中肯定有一个数据结构用于存储文件主体数据所在的硬盘位置、文件创建、修改以及权限信息。

linux中存储文件信息的结构体被叫做inode。只要用户访问过文件,Inode中存储访问时间的字段肯定会被修改。只要Inode中的字段被修改那么ctime就会修改。

试想如果修改了一个文件的内容,mtime和atime会被修改,由于mtime和atime都记录在Inode中,因此Inode的内容也会被修改,那么ctime也就修改了。但是反过来就不一定成立,如果ctime修改了那么mtime和atime是不一定修改的。比如说chmod u+w t运行这个命令修改了t这个文件的用户组权限,那么Inode中的相应字段就修改了,ctime就改变了。但是没有更改文件的内容和访问文件所以atime和mtime都不变。

find命令还可以增加-name选项用于查找与字符串相匹配的文件。也支行*通配符,但是加通配符的时候需要给字符串加引号。

还可以有-type选项,表示需要查找的文件类型,文件类型有f, b, c, d, l ,s等,分别表示文件,块设备、字符设备、目录、链接文件、套接字文件。

相关文章

  • linux学习笔记-day8-搜索文件

    which命令可以搜索可执行文件的绝对路径,这里的可执行文件只能是已经在PATH目录中的。 whereis命令类似...

  • Linux编程学习笔记 | Linux IO学习[2] - 标准

    在上一篇Linux编程学习笔记 | Linux IO学习[1] - 文件IO中,我总结了Linux下的文件IO。文...

  • 009.Python学习笔记:Day8-使用python+sel

    Python学习笔记:Day8-使用selenium控制手chrome浏览器 使用Selenium控制Chrome...

  • Linux学习

    Linux学习 搜索 locate 文件名 在后台数据库中按文件名搜索,搜索速度更快 locate数据库每天自动更...

  • 基础篇

    Linux学习 一、find命令 1、搜索文件的命令:which、whereis、locate、find a、wh...

  • linux中常用通配符的使用

    今天把linux中常用的通配符学习了下,于是总结成了本文。 Linux中通配符主要是用来模糊搜索文件或文件夹。当查...

  • linux常用命令

    linux搜索 find -name 文件名

  • Linux 文件搜索

    find 匹配任意内容? 匹配任意一个字符[] 匹配任意一个中括号内的字符不区分大小写查找文件 安装文件所有者查找...

  • Linux达人养成计划 I--学习笔记

    本篇涉及的知识点 Linux简介Linux安装Linux命令基本格式及文件处理命令Linux 文件搜索命令Linx...

  • python文件操作学习笔记

    本文是Python文件处理的学习笔记。 文件的概念 Linux 系统中,一切皆文件。文件,也是一个文件对象。文件的...

网友评论

      本文标题:linux学习笔记-day8-搜索文件

      本文链接:https://www.haomeiwen.com/subject/mltbnftx.html