我有 Solaris 10 机器
我需要验证 Solaris 计算机中某些文件的时间戳
并得到以下格式
[year][month][day]
Linux 上的工作命令示例
ls -l --time-style=+%Y%m%d /etc/hosts | awk '{print $6}'
20121107 <----- ( expected results )
- 备注 我无法在我的Solaris 机器上安装gnu ls!
在我的 Solaris 机器上,我尝试了以下命令,但它们都不起作用(因为 Solaris 标志与 Linux 不同),并且 stat 命令未在我的 Solaris 中定义
# ls -l -T -D %Y%m%d /etc/hosts
ls: illegal option -- T
ls: illegal option -- D
usage: ls -1RaAdCxmnlhogrtuvVcpFbqisfHLeE@ [files]
# stat /etc/hosts | awk '/Access/{print $2}' | tail -n1 | tr -d'' '-'
ksh: stat: not found
请告知是否有其他方法可以获取文件的时间戳日期(不是通过 ls 或 stat 命令),也许可以使用 date 命令?为了给我解决方案,
如下:
<solaris> command /etc/hosts
[year][month][day]
答案1
在 Solaris (>= 10) 中,ls 命令具有 -E 选项。所以你的命令可以像
ls -E /etc/hosts
或一样 简单ls -E /etc/hosts | awk '{print $6}'| sed 's#-##g'
以获得所需的结果。
答案2
一种可移植的方法可以是:
perl -MPOSIX -le 'print strftime "%Y%m%d", localtime((lstat)[9]) for @ARGV' /etc/hosts