7.07.2011

How to get full timestamp of old files in Solaris

Solaris: 半年以上経ったファイルのタイムスタンプの時刻を調べる

「ls –l」コマンドを行った場合、半年以上経過したファイルは変更年月日が表示されるため、
時刻が表示されない。

   1: $ ls -l ./foo.txt
   2: -rw-r--r--   1 root     root         616 12月 25日 2010年 ./foo.txt

タイムスタンプの「時刻」を表示するには、以下のようなやり方がある。

・ls コマンドの「-e」「-E」オプション ⇒ これらのオプションが使えれば、非常に簡単
 (Linux であれば「–-full-time」オプションが使える)

   1: $ ls -e ./foo.txt
   2: -rw-r--r--   1 root     root         616 12月 25日 10:51:18 2010年 ./foo.txt
   3: $ ls -E ./foo.txt
   4: -rw-r--r--   1 root     root         616 2010-12-25 10:51:18.235541000 +0900 ./foo.txt

・pr コマンドによる方法 ⇒ 印刷用ページを出力し、そのヘッダ情報を読み取る

   1: $ pr ./foo.txt |sed -n 3p
   2: 12月 25 10:51 2010  ./foo.txt Page 1

・tar コマンドによる方法 ⇒ 標準出力にアーカイブを出力し、そのまま内容を読み取る

   1: $ tar cf - ./foo.txt |tar tvf -
   2: tar: ブロックサイズ = 5
   3: -rw-r--r--   0/0      616 12月 25日 10:51 2010年 ./foo.txt

補足:LANG=C の場合

   1: $ ls -l ./foo.txt
   2: -rw-r--r--   1 root     root         616 Dec 25  2010 ./foo.txt
   3: $ ls -e ./foo.txt
   4: -rw-r--r--   1 root     root         616 Dec 25 10:51:18 2010 ./foo.txt
   5: $ ls -E ./foo.txt
   6: -rw-r--r--   1 root     root         616 2010-12-25 10:51:18.235541000 +0900 ./foo.txt
   7: $ pr ./foo.txt |sed -n 3p
   8: Dec 25 10:51 2010  ./foo.txt Page 1
   9: $ tar cf - ./foo.txt |tar tvf -
  10: tar: blocksize = 5
  11: -rw-r--r--   0/0      616 Dec 25 10:51 2010 ./foo.txt

参考:
http://www.rep1.co.jp/manager/2011/02/solaris.htm

0 件のコメント:

コメントを投稿