📅  最后修改于: 2023-12-03 14:48:06.435000             🧑  作者: Mango
在使用 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}'
命令用于提取文件的最后修改时间。