检查Linux中的文件访问和修改时间
本教程的目的是展示几种可用于检查 Linux 系统上文件访问和修改时间的命令行方法。
请查看下面的示例,我们将介绍用于该工作的多种工具,例如 ls、date、stat 和 find 等。
在本教程中您将学习:
如何在Linux中检查文件访问和修改时间
检查Linux示例中的文件访问和修改时间
Linux 命令行附带了几个工具,我们可以使用它们来检查文件访问和修改时间。无需安装任何额外的工具。查看下面的一些示例,了解在 Linux 上检查文件访问和修改时间的各种方法。
您知道吗?
访问时间是文件最后一次访问(读取或修改)的时间。 修改时间是文件内容最后一次被修改的时间。 更改时间是文件最后一次更改其元数据(例如文件权限或文件名)的时间。
Linux
stat
命令将向我们显示文件的访问时间、修改时间和更改时间。只需在命令中指定文件的路径即可。$ stat example.txt
输出看起来像这样。粗体线包含相关信息。
File: example.txt Size: 13367 Blocks: 32 IO Block: 4096 regular file Device: 805h/2053d Inode: 787524 Links: 1 Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2021-12-15 22:28:53.480000095 -0500 Modify: 2021-12-15 22:28:53.480000095 -0500 Change: 2022-02-20 19:48:33.288001148 -0500 Birth: -
请注意,EXT 文件系统不支持
Birth
字段(最后一行)。我们可以使用的另一个工具是 ls 命令。无论如何,这已经是所有 Linux 用户在第一天学习的极其常见的命令。您需要在命令中添加
-l
选项才能查看修改时间。$ ls -l example.txt -rw------- 1 root root 13367 Dec 15 22:28 example.txt
要使用
ls
查看文件的访问时间,请在命令中附加-u
选项。$ ls -u example.txt -rw------- 1 root root 13367 Dec 15 22:28 example.txt
在这种情况下,我们的访问时间与文件的修改时间相同,这对于自上次保存以来未曾访问过的文件来说是正常的。
我们可以使用的另一个工具是 date 命令。没有必要指定任何额外的选项,因为修改时间将以非常人类可读的格式输出,但我们将向您展示为什么您可能希望在下一个示例中使用额外的选项。
$ date -r example.txt Wed 15 Dec 2021 10:28:53 PM EST
使用 date 命令的好处是我们可以选择修改后的日期输出的格式。这使得它在 Bash 脚本或其他类型的自动化中使用非常友好。例如,这里我们获取格式为
YYYY-MM-DD-HH-MM-SS
的修改日期。$ date -r example.txt +"%Y-%m-%d-%H-%M-%S" 2021-12-15-22-28-53
如果我们需要查看包含特定修改时间的所有文件,
find
命令会派上用场。例如,此命令将显示过去 7 天内修改的所有文件。$ find . -mtime -7
或者最近一小时内修改的文件:
$ find . -mmin 60
find
命令还可用于搜索具有特定访问时间的文件。例如,此命令将搜索最近 20 分钟内访问过的文件。$ find ~ -amin 20
或者我们可以通过更改为加号来搜索访问时间晚于 20 分钟前的文件。
$ find ~ +amin 20
结束语
在本教程中,我们了解了如何在 Linux 中检查文件的访问和修改时间。有多种工具可以完成这项工作,但每种工具都有自己的优点和缺点,具体取决于您想要做什么。 stat
命令为我们提供了所有相关信息,但 ls
可能是您每天更习惯使用的命令。不过,date
命令在 Bash 脚本中或在您需要以某种方式格式化输出的情况下可能会工作得更好。最后,find
命令在搜索特定修改或访问日期范围内的文件时效果最佳。