ä¸è¦å²ç¬æåçæ§
目次:
- Linuxのdateコマンドを使用する
- 日付の書式設定オプション
- 日付文字列
- タイムゾーンをオーバーライドする
- エポックコンバーター
- 他のコマンドで日付を使用する
- ファイルの最終変更時刻を表示する
- システムの時刻と日付を設定する
- 結論
dateコマンドは、システムの日付を表示または設定します。 最も一般的には、日付と時刻を異なる形式で印刷し、将来と過去の日付を計算するために使用されます。
このチュートリアルでは、dateコマンドの基本について説明します。
Linuxのdateコマンドを使用する
date
コマンドの構文は次のとおりです。
date…
デフォルトのフォーマットを使用して現在のシステム時刻と日付を表示するには、オプションなしでコマンドを呼び出します。
date
出力には、曜日、月、日、時刻、タイムゾーン、および年が含まれます。
日付の書式設定オプション
date
の出力は、
+
記号を前に付けた一連のフォーマット制御文字でフォーマットできます。 フォーマットコントロールは
%
記号で始まり、値で置き換えられます。
date +"Year: %Y, Month: %m, Day: %d"
%Y
文字は年に、
%m
は月に、
%d
は月の日に置き換えられます。
Year: 2019, Month: 06, Day: 02
別の例を次に示します。
date "+DATE: %D%nTIME: %T"
DATE: 06/02/19 TIME: 01:47:04
以下は、最も一般的な書式設定文字の一部の小さなリストです。
-
%a
a-ロケールの短縮された短い曜日名(例:月)%A
ロケールの短縮された完全な曜日名(例、月曜日)%b
ロケールの短縮された短い月名(例1月)%B
ロケールの短縮された長い月名(例1月)%d
-月の日(例、01)%H
時間(00..23)%I
時間(01..12)%j
年の日(001..366)%m
月(01..12 )%M
分(00..59)%S
秒(00..60)%u
曜日(1..7)%Y
通年(例2019)
すべてのフォーマットオプションの完全なリストを取得するには、端末で
date --help
または
man date
実行します。
日付文字列
-d
オプションを使用すると、特定の日付で操作できます。 以下のように、日付を人間が読める日付文字列として指定できます。
date -d "2010-02-07 12:10:53"
Sun Feb 7 12:10:53 CET 2010
カスタムフォーマットの使用:
date -d '16 Dec 1974' +'%A, %d %B %Y'
Monday, 16 December 1974
日付文字列は、「明日」、「金曜日」、「最後の金曜日」、「次の金曜日」、「来月」、「来週」などの値も受け入れることができます。
date -d "last week"
Sat May 25 14:31:42 CEST 2019
日付文字列オプションを使用して、異なるタイムゾーンのローカル時間を表示することもできます。 たとえば、オーストラリア東海岸の次の月曜日の午前6時30分に現地時間を表示するには、次のように入力します。
date -d 'TZ="Australia/Sydney" 06:30 next Monday'
タイムゾーンをオーバーライドする
date
コマンドは、デフォルトのシステムタイムゾーンを使用します。 別のタイムゾーンを使用するには、環境変数
TZ
を目的のタイムゾーンに設定します。
たとえば、メルボルンのオーストラリア時間を表示するには、次のように入力します。
TZ='Australia/Melbourne' date
Sat Jun 1 22:35:10 AEST 2019
使用可能なすべてのタイムゾーンを一覧表示するには、
/usr/share/zoneinfo
ディレクトリ内のファイルを一覧表示するか、
timedatectl list-timezones
コマンドを使用します。
エポックコンバーター
date
コマンドは、エポックコンバーターとして使用できます。 エポック(Unixタイムスタンプ)は、1970年1月1日00:00:00 UTCから経過した秒数です。
エポックから当日までの秒数を出力するには、
%s
フォーマットコントロールを使用します。
date +%s
1559393792
エポックからの秒数を日付に変換するには、秒を接頭辞として
@
付けた日付文字列として設定します。
date -d @1234567890
他のコマンドで日付を使用する
date
コマンドは、現在の日時を含むファイル名を作成するために最も頻繁に使用されます。
次のコマンドは、次の形式
database_name-20190601.sql
バックアップファイルを作成し
database_name-20190601.sql
mysqldump database_name > database_name-$(date +%Y%m%d).sql
シェルスクリプトで
date
コマンドを使用することもできます。 以下の例では、
date_now
変数に
date
の出力を割り当てています。
date_now=$(date "+%F-%H-%M-%S") echo $date_now
ファイルの最終変更時刻を表示する
-r
オプションを指定した
date
コマンドは、ファイルの最終変更時刻を表示します。 例えば:
date -r /etc/hosts
システムの時刻と日付を設定する
ほとんどのLinuxディストリビューションではシステムクロックは
ntp
または
systemd-timesyncd
サービスを使用して同期されるため、
date
コマンドを使用してシステムの時刻と日付を手動で設定することは通常お勧めしません。
ただし、システムクロックを手動で設定する場合は、
--set=
オプションを使用できます。 たとえば、日付と時刻を2019年6月1日午後5時30分に設定するには、次のように入力します。
結論
ここまでで、Linuxのdateコマンドの使用方法を十分に理解できたはずです。
日付端末