如何使用 bash 脚本检查 AIX 中文件的最后修改日期?
Posted
技术标签:
【中文标题】如何使用 bash 脚本检查 AIX 中文件的最后修改日期?【英文标题】:How to check last modified date of a file in AIX using bash script? 【发布时间】:2019-11-06 18:15:17 【问题描述】:我想在 AIX 中使用 bash 脚本检查文件的最后修改日期。
我试过了,
date -r file.txt "+%m-%d-%Y"
stat -c %y file.txt
但不能在 AIX 中工作。
【问题讨论】:
not working
- 这是什么意思?你有任何错误吗?消息?输出无效?格式错误?
“日期:不是公认的标志:r”这是我得到的。
stat -c %y file.txt
会发生什么?
stat 在 AIX 中不是可用的命令
【参考方案1】:
如果您找不到合适的特定实用程序,您可以随时使用 perl:
perl -MPOSIX=strftime -e 'printf "%s\n", strftime("%c", localtime((stat(shift @ARGV))[8]))' filename
或更清晰:
perl -e '
use POSIX qw(strftime);
my $filename = shift @ARGV;
my @filedata = stat $filename;
my $mtime = $filedata[8];
my @timedata = localtime $mtime;
my $timestamp = strftime "%c", @timedata;
print "$timestamp\n";
' filename
根据自己的喜好选择 strftime 格式。如果只需要纪元时间,打印$mtime
。
【讨论】:
嘿。+1
用于添加易读版本;)【参考方案2】:
怎么样:
istat file
Inode 263 on device 10/8 File
Protection: rw-r--r--
Owner: 0(root) Group: 0(system)
Link count: 1 Length 14682 bytes
Last updated: Tue Sep 15 10:50:15 PDT 2018
Last modified: Tue Sep 15 10:50:15 PDT 2018
Last accessed: Tue Nov 3 12:01:12 PST 2018
如果你还没有弄清楚:
date -d "$( istat file | awk '/modified/gsub( /^[^:]+: +/,"",$0); print' )" "+%m-%d-%Y"
P.S.:"+%m-%d-%Y"
是一种愚蠢的日期格式,因为它不能自然排序。 "+%Y-%m-%d"
会更有意义。
【讨论】:
我只想将文件的修改日期存储在一个变量中(只是日期为 ddmmyyy 格式)。 我希望 AIX 上的awk
和 date
与我的行为相同;) @Rajs以上是关于如何使用 bash 脚本检查 AIX 中文件的最后修改日期?的主要内容,如果未能解决你的问题,请参考以下文章
在 AIX/bash 上的 bash 循环中读取文件比在 Linux/ksh 中慢得多 - BLOCKSIZE?
在 bash 脚本中,如何引用单独的文件以在 for 循环中使用它? [复制]