web-dev-qa-db-ja.com

Solaris +表示ファイルのタイムスタンプ[年] [月] [日]

Solaris 10マシンを持っています

Solarisマシンのファイルのタイムスタンプを確認する必要があります

そして、次のフォーマットを取得する

 [year][month][day]

Linuxで動作するコマンドの例

  ls -l --time-style=+%Y%m%d /etc/hosts | awk '{print $6}'
  20121107   <----- ( expected results )           
  • remark私のソラリスマシンにGNU lsをインストールすることはできません!

私のSolarisマシンで次のコマンドを試してみましたが、すべてのコマンドが機能しません(SolarisのフラグがLinuxと異なるため)。また、Solarisでstatコマンドが定義されていません。

# 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]
6
yael

Solaris(> = 10)では、lsコマンドに-Eオプションがあります。したがって、コマンドはls -E /etc/hostsまたはls -E /etc/hosts | awk '{print $6}'| sed 's#-##g'

望ましい結果を得るために。

7
nightwatch2359

それを行うためのポータブルな方法は次のとおりです。

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