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