📜  ubuntu cmd 文件最后修改时间 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:48:06.435000             🧑  作者: Mango

Ubuntu CMD 文件最后修改时间 - Shell/Bash

在使用 Ubuntu 命令行时,有时候需要查找文件的最近修改时间。在 Shell/Bash 中,可以使用 stat 命令来获取文件的详细信息,其中包括最后修改时间。

使用 stat 命令

以下是使用 stat 命令获取文件最后修改时间的示例:

$ stat example.txt

输出示例:

  File: 'example.txt'
  Size: 22             Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d      Inode: 13127221    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1001/   user)   Gid: ( 1001/   user)
Access: 2021-01-01 00:00:00.000000000 +0800
Modify: 2021-01-02 00:00:00.000000000 +0800
Change: 2021-01-02 00:00:00.000000000 +0800
 Birth: -

可以看到,其中 Modify: 后面的时间即为文件的最后修改时间。如果需要将这个时间戳转换为人类可读的格式,可以使用 date 命令:

$ date -d @$(stat -c '%Y' example.txt)

输出示例:

Sat Jan  2 00:00:00 CST 2021

其中 -d 参数表示将时间戳转换为人类可读的格式,@ 后面跟着时间戳,使用 stat -c '%Y' 命令获取。

使用 ls 命令

除了使用 stat 命令外,还可以使用 ls 命令获取文件的最后修改时间。使用 -l 参数可以将文件的详细信息输出,其中包括最后修改时间:

$ ls -l example.txt

输出示例:

-rw-r--r-- 1 user user 22 Jan 2 00:00 example.txt

可以看到,其中文件名后面的时间即为文件的最后修改时间。如果需要将这个时间戳转换为人类可读的格式,可以使用 date 命令:

$ date -d "$(ls -l --time-style=+"%Y-%m-%d %H:%M:%S" example.txt | awk '{print $6" "$7}')"

输出示例:

Sat Jan  2 00:00:00 CST 2021

其中 --time-style=+"%Y-%m-%d %H:%M:%S" 参数可以使 ls 命令输出时间的格式符合 ISO 标准,awk '{print $6" "$7}' 命令用于提取文件的最后修改时间。