lsコマンドでタイムスタンプを任意のフォーマットで表示する方法(西暦、曜日など)

目次

スポンサードリンク

Linuxのlsコマンドではファイルやディレクトリを一覧表示することができます。表示結果の内、ファイルのタイムスタンプはlocale設定に沿った表示となります。 この記事では年月日を任意のフォーマットで表示する方法を解説します。

full-isoオプションで作成日時をナノ秒まで表示する

lsコマンドに –full-isoオプションを指定すると作成日時をナノ秒まで表示することができます。以下のような表示になります。

[root@hostname apache-tomcat-8.5.34]# ls -l --full-time
total 240
drwxr-x--- 2 tomcat tomcat  4096 2018-10-15 02:03:43.449632249 +0900 bin
-rw-r----- 1 tomcat tomcat 19539 2018-09-05 07:30:39.000000000 +0900 BUILDING.txt
drwx------ 3 tomcat tomcat  4096 2018-10-15 02:40:01.208819372 +0900 conf
-rw-r----- 1 tomcat tomcat  6090 2018-09-05 07:30:39.000000000 +0900 CONTRIBUTING.md
drwxr-x--- 2 tomcat tomcat  4096 2018-10-15 02:03:43.391631240 +0900 lib
-rw-r----- 1 tomcat tomcat 57092 2018-09-05 07:30:39.000000000 +0900 LICENSE
drwxr-x--- 2 tomcat tomcat 98304 2024-04-21 22:27:42.950071584 +0900 logs
-rw-r----- 1 tomcat tomcat  1726 2018-09-05 07:30:39.000000000 +0900 NOTICE
-rw-r----- 1 tomcat tomcat  3255 2018-09-05 07:30:39.000000000 +0900 README.md
-rw-r----- 1 tomcat tomcat  7142 2018-09-05 07:30:39.000000000 +0900 RELEASE-NOTES
-rw-r----- 1 tomcat tomcat 16262 2018-09-05 07:30:39.000000000 +0900 RUNNING.txt
drwxr-x--- 2 tomcat tomcat  4096 2018-10-15 02:03:43.391631240 +0900 temp
drwxr-x--- 7 tomcat tomcat  4096 2018-10-15 02:35:21.257922744 +0900 webapps
drwxr-x--- 3 tomcat tomcat  4096 2018-10-15 02:06:08.503162507 +0900 work

作成日時を任意のフォーマットで表示する

lsコマンドに –time-styleオプションを指定すると作成日時を任意のフォーマットで表示することができます。 フォーマット指定は dateコマンドで使用できるオプションを使用することができます。試しに、YYYY/MM/DD形式+曜日を表示してみます。

[root@hostname apache-tomcat-8.5.34]# ls -l --time-style='+%Y/%H/%m %A'
total 240
drwxr-x--- 2 tomcat tomcat  4096 2018/02/10 Monday bin
-rw-r----- 1 tomcat tomcat 19539 2018/07/09 Wednesday BUILDING.txt
drwx------ 3 tomcat tomcat  4096 2018/02/10 Monday conf
-rw-r----- 1 tomcat tomcat  6090 2018/07/09 Wednesday CONTRIBUTING.md
drwxr-x--- 2 tomcat tomcat  4096 2018/02/10 Monday lib
-rw-r----- 1 tomcat tomcat 57092 2018/07/09 Wednesday LICENSE
drwxr-x--- 2 tomcat tomcat 98304 2024/22/04 Sunday logs
-rw-r----- 1 tomcat tomcat  1726 2018/07/09 Wednesday NOTICE
-rw-r----- 1 tomcat tomcat  3255 2018/07/09 Wednesday README.md
-rw-r----- 1 tomcat tomcat  7142 2018/07/09 Wednesday RELEASE-NOTES
-rw-r----- 1 tomcat tomcat 16262 2018/07/09 Wednesday RUNNING.txt
drwxr-x--- 2 tomcat tomcat  4096 2018/02/10 Monday temp
drwxr-x--- 7 tomcat tomcat  4096 2018/02/10 Monday webapps
drwxr-x--- 3 tomcat tomcat  4096 2018/02/10 Monday work

指定できるフォーマット一覧

他にも以下のフォーマットを指定することができます。

   %a     地域の省略曜日名 (例: Mon)
   %A     地域の完全な曜日名 (例: Monday)
   %b     地域の省略月名 (例: Oct)
   %B     地域の完全な月名 (例: October)
   %C     世紀; %Y と同じだが、最後の2桁を省略 (例: 20)
   %F     完全な日付; %Y-%m-%d と同じ
   %g     ISO 週番号の年の最後の2桁 (詳細は %G を参照)
   %G     ISO 週番号の年 (詳細は %V を参照); 通常、%V と一緒にのみ有用
   %H     時 (00..23)
   %I     時 (01..12)
   %j     年の日数 (001..366)
   %k     時、スペースで埋められる (0..23); %_H と同じ
   %l     時、スペースで埋められる (1..12); %_I と同じ
   %m     月 (01..12)
   %M     分 (00..59)
   %n     改行
   %N     ナノ秒 (000000000..999999999)
   %p     AM または PM の地域に相当するもの; 不明な場合は空白
   %P     %p と同じだが、小文字
   %r     地域の12時間制時刻 (例: 11:11:04 PM)
   %R     24時間制の時と分; %H:%M と同じ
   %s     1970-01-01 00:00:00 UTC からの経過秒数
   %S     秒 (00..60)
   %T     時刻; %H:%M:%S と同じ
   %u     曜日 (1..7); 1 が月曜日
   %U     年の週番号、週の最初を日曜日とする (00..53)
   %V     ISO 週番号、週の最初を月曜日とする (01..53)
   %w     曜日 (0..6); 0 が日曜日
   %W     年の週番号、週の最初を月曜日とする (00..53)
   %x     地域の日付表記 (例: 12/31/99)
   %X     地域の時刻表記 (例: 23:13:48)
   %y     年の最後の2桁 (00..99)
   %Y     年
   %z     +hhmm 数値のタイムゾーン (例: -0400)
   %:z    +hh:mm 数値のタイムゾーン (例: -04:00)
   %::z   +hh:mm:ss 数値のタイムゾーン (例: -04:00:00)
   %:::z  : で必要な精度までの数値のタイムゾーン (例: -04, +05:30)
   %Z     アルファベットのタイムゾーンの略語 (例: EDT)

リナックスコマンドの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。