我想使用bash脚本检查AIX中文件的最后修改日期。
我尝试过
date -r file.txt "+%m-%d-%Y"
stat -c %y file.txt
但不能在AIX中使用。
答案 0 :(得分:3)
如果找不到合适的特定实用程序,则可以始终使用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"
会更有意义。