命令 stat 显示文件的状态信息, 命令 find 搜索文件详解

一, 命令 stat

  1. 命令语法
    stat(选项)(参数)

  2. 命令描述
    命令 stat 用于显示文件的状态信息。stat 命令的输出信息比 ls 命令的输出信息要更详细。

  3. 命令选项
    -L:支持符号连接;
    -f:显示文件系统状态而非文件状态;
    -t:以简洁方式输出信息;
    –help:显示指令的帮助信息;
    –version:显示指令的版本信息。

stat 实战

  • 使用 stat 命令查看 1.txt 的文件。
    如图所示
    Access 那一列 表示文件的 access time(存取时间,即 atime)。
    Modify 那一列 表示文件的 modify time(修改时间,即 mtime)。
    Change 那一列 表示文件的 change time(改变时间,即 ctiime)。
    命令 stat 显示文件的状态信息, 命令 find 搜索文件详解

二, 命令 find

  1. 命令语法:
    find [路径][参数]

  2. 命令描述
    命令 find 是用来搜索文件。

  3. 命令选项
    -type 表示 文件类型
    -name 表示 文件名
    -o 表示 或 的意思
    -mmin 表示分钟
    -inum 表示查找一个文件的硬链接。
    -exec < 执行指令 >:假设 find 指令的回传值为 True,就执行该指令。
    -size 文件大小
    -atime +n/-n 表示访问或执行时间大于或小于 n 天的文件。
    -ctime +n/-n 表示写入,更改 inode 属性 (如更改所有者,权限或者链接) 的时间大于或小于 n 天的文件。
    -mtime +n/-n 表示写入时间大于或小于 n 天的文件,该参数用得最多。

  • 文件的 access time(即 atime) 是在读取文件或者执行文件时更改的。
  • 文件的 modify time(即 mtime) 是在写入文件时随文件内容的更改而更改的。
  • 文件的change time(即 ctime) 是在写入文件,更改所有者,权限或链接设置是随 inode 内容的更改而更改的。
    其中 inode(索引节点) 用来存放文档及目录的基本信息,包括时间信息,文档名,所有者以及所属组等。inode 是 Unix 操作系统中的一种数据结构,其本质是结构体,在文件系统创建时生成,且个数有限。在 Linux 下,可以通过命令 df -i 来查看各个分区的 inode 总数以及使用情况。

命令 find 实战

参数 atime(存取时间),mtime(修改时间),ctime(改变时间)

  • 改变文件 1.txt 的权限
    如图所示
    当我把 1.txt 的权限改变成 700 权限以后,change 那一列的时间改变了。
    说明了当我们改变文件的权限以后,ctime 会随之改变。
    命令 stat 显示文件的状态信息, 命令 find 搜索文件详解

  • 修改 1.txt 文件的内容
    如图所示
    当我在 1.txt 文件中追加内容以后,modify 那一列的时间改变了,change 那一列的时间也改变了,而且改变的时间是相同的。
    说明了当我们改变文件的内容以后,mtime 和 ctime 会随之改变,而且改变的时间是相同的。
    命令 stat 显示文件的状态信息, 命令 find 搜索文件详解

  • 读取 1.txt 文件的内容
    如图所示
    当我 cat 访问 1.txt 文件的内容后,access 那一列的时间改变了。
    说明了当我们访问文件的内容以后,atime 会随之改变。
    命令 stat 显示文件的状态信息, 命令 find 搜索文件详解

  • 根据 name 搜索文件。 其语法: find 路径 -name 文件名
    命令 stat 显示文件的状态信息, 命令 find 搜索文件详解

  • 根据 name 的前半部分模糊搜索文件。会列出与之相关的文件。 其语法: find 路径 -name "文件名的前半部分 *"
    命令 stat 显示文件的状态信息, 命令 find 搜索文件详解

  • 根据文件的类型模糊搜索文件。 其语法: find 路径 -type 文件类型 "文件名的前半部分 *"
    说明: 这里的 f 表示文件的类型。文件的类型有 - 普通文件,l 链接文件,b 块设备文件等等。。。当然也可以使用 find 命令只指定类型不指定 name 搜索文件。
    命令 stat 显示文件的状态信息, 命令 find 搜索文件详解

  • 查看 /etc/ 下的一天以内发生过更改的文件
    如图所示,find /etc/ -type f -mtime -1
    解析命令:
    /etc/ 路径
    -type f 文件类型
    -mtime -1 一天以内发生过更改内容的文件。(最后面如果是 +1 的话,就是一天以前发生过更改内容的文件)
    命令 stat 显示文件的状态信息, 命令 find 搜索文件详解

  • -o 选项
    如图所示,find /etc/ -type f -o -mtime -1
    与上图不同的是加了一个 -o 选项,这个 -o 选项是 或者 的意思。
    说明 查询 /etc/ 目录下的类型为 f 的文件 或者 一天以内修改文件内容的文件。
    命令 stat 显示文件的状态信息, 命令 find 搜索文件详解

  • 查找 /etc/ 120 分钟以内的写入过的文件。
    如图所示:
    其中 -mmin 代表分钟
    命令 stat 显示文件的状态信息, 命令 find 搜索文件详解

  • 在查找 /etc/ 120 分钟以内的写入过的文件的同时把文件的详细信息列出来。
    如图所示:
    在上图命令的基础上增加了: -exec ls -l { } \
    命令解析:
    1.-exec< 执行指令 >:假设 find 指令的回传值为 True,就执行该指令。
    2.ls -l : 显示文件的详细信息
    3.{ } 表示 find 出来的文件的列表
    命令 stat 显示文件的状态信息, 命令 find 搜索文件详解

  • 查找 /root/ 目录下小于 10k 的文件,并列出详细信息。
    命令 stat 显示文件的状态信息, 命令 find 搜索文件详解