6

I have Solaris 10 machine

I need to verify time stamp of some file in my Solaris machine

And to get the following format

 [year][month][day]

Example of working command on Linux

  ls -l --time-style=+%Y%m%d /etc/hosts | awk '{print $6}'
  20121107   <----- ( expected results )           
  • remark I can't to install gnu ls on My solaris machine!

On my solaris machine I try the following commands but all them not works ( because Solaris flags are different from Linux ) , and stat command not defined in my 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

Please advice if there are some other ways to get stamp date of file ( not by ls or stat command ) , maybe with date command ? in order to give me the solution,

As the following:

   <solaris>   command /etc/hosts 

               [year][month][day]

2 Answers 2

7

In Solaris (>= 10) the ls command has the -E option. So your command could be as simple as ls -E /etc/hosts or ls -E /etc/hosts | awk '{print $6}'| sed 's#-##g'

to get the desired result.

1
  • great solution thx allot
    – yael
    Commented Dec 5, 2012 at 13:42
3

A portable way to do it could be:

perl -MPOSIX -le 'print strftime "%Y%m%d", localtime((lstat)[9]) for @ARGV' /etc/hosts
1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .