No Solaris (> = 10), o comando ls tem a opção -E. Então, seu comando pode ser tão simples quanto
ls -E /etc/hosts
ou
ls -E /etc/hosts | awk '{print $6}'| sed 's#-##g'
para obter o resultado desejado.
Eu tenho uma máquina Solaris 10
Eu preciso verificar a data e hora de algum arquivo na minha máquina Solaris
E para obter o seguinte formato
[year][month][day]
Exemplo de comando de trabalho no Linux
ls -l --time-style=+%Y%m%d /etc/hosts | awk '{print $6}'
20121107 <----- ( expected results )
Na minha máquina solaris, eu tento os seguintes comandos, mas todos eles não funcionam (porque os sinalizadores do Solaris são diferentes do Linux) e o comando stat não está definido no meu 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
Por favor, conselhos, se existem algumas outras maneiras de obter data de carimbo do arquivo (não pelo comando ls ou stat), talvez com o comando date? para me dar a solução,
Como o seguinte:
<solaris> command /etc/hosts
[year][month][day]
Uma maneira portátil de fazer isso pode ser:
perl -MPOSIX -le 'print strftime "%Y%m%d", localtime((lstat)[9]) for @ARGV' /etc/hosts
Tags ls date solaris timestamps