somemo programming etc.

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Linux】ls -lの時間を詳細に表示する

頻繁に使うコマンド「ls」の中で、よく使うオプション「lt」ですが、デフォルトですと月日時分しか表示されないため、年が変わっているかを直感的に判別できません。それを解決するオプションを知りましたので、それのメモです。

データの準備

下記コマンドを実行しておきます。

mkdir -p ls_test/first
cd ls_test && mkdir second
ls -l

合計 8
drwxrwxr-x 2 test test 4096  3月  5 03:16 first
drwxrwxr-x 2 test test 4096  3月  5 03:16 second

ls --help

ヘルプを以下に抜粋しました。

--full-time
     like -l --time-style=full-iso

--time-style=STYLE
     with -l, show times using style STYLE:
     full-iso, long-iso, iso, locale, +FORMAT.
     FORMAT is interpreted like `date';
     if FORMAT is FORMAT1FORMAT2, FORMAT1 applies to non-recent files and FORMAT2 to recent files;
     if STYLE is prefixed with `posix-', STYLE takes effect only outside the POSIX locale

以下、各オプションの結果です。

--full-time(full-iso)

ls --full-time
# ls -l --time-style=full-iso

2012-03-05 03:16:05.000000000 +0900 first
2012-03-05 03:16:09.000000000 +0900 second

--time-styleはlオプションが必要です。

long-iso

ls -l --time-style=long-iso

2012-03-05 03:16 first
2012-03-05 03:16 second

fullと比べて、秒が表示されません。

iso

ls -l --time-style=iso

03-05 03:16 first
03-05 03:16 second

longと比べて、年が表示されません。意味がありません…。

FORMAT

ls -l --time-style='+%Y-%m-%d %H:%M:%S'

2012-03-05 03:16:05 first
2012-03-05 03:16:09 second

自由に表示できます。

locale

ls -l --time-style=locale

結果はlオプションと同様、日本語で表示されます。