저는 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

관련 정보