ウェブサイト検索

Bashで昨日の日付を見つける方法


Bourne Again Shell、通称Bashは、タスクを操作および自動化するためのさまざまなコマンドラインユーティリティを備えています。そんなユーティリティの一つがdateコマンドで、日付/時刻を取得し、操作するために使用されます。dateコマンドを使用することで、Bashスクリプトで使用するために昨日の日付を取得することも可能です。

昨日の日付を取得することは、レポートの生成、データ管理、タスクのスケジュールに役立つことがあります。

このチュートリアルでは、Bashで昨日の日付を取得するためのdateコマンドの使い方を探ります。

bashの日付コマンドとは
Linuxのbashで昨日の日付を見つける方法
1. -dまたは--dateオプションを使用して昨日の日付を見つける

    • Linuxにおける-dまたは--dateオプションの制限は何ですか?

EPOCHSECONDSを使用して昨日の日付を見つける
macOSのBashで昨日の日付を見つける方法
結論

Bashのdateコマンドとは何ですか?

Bashのdateコマンドは、端末に日付と時刻を表示します。また、異なる形式で日付と時刻を設定、変更、または印刷するためにも使用できます。dateコマンドは、Bashスクリプトでのタスクの自動化とスケジューリングに非常に役立ちます。

現在の日付と時刻を取得するには、端末にdateと入力するだけです。

date

日付をYYYY-MM-DD形式で取得するには、次のコマンドを使用します:

date +"%Y/%m/%d"

上のコマンドではスラッシュ(/)の代わりにダッシュ(-)を使用できます。

一般的に使用されるフォーマット制御文字は以下に示されています:

%d
日付を表示します。例えば:02または03。
%D
日付を月-日-年形式で表示します。
%m
月を表示します; 例えば: 01-12
%u
曜日を表示します:例えば、1-7。1は月曜日、4は木曜日です。
%W
年の週番号を表示します。例えば、00-53で、00は年の最初の週、01は年の第二週です。
%j
年の日付を表示します; 例えば、001は年の最初の日で、366は年の最後の日です。

詳細については、日付コマンドのマニュアルページにアクセスするために次のコマンドを実行してください:

man date

date コマンドに付随するもう一つの重要なオプションは、-d または --date です。これらのオプションを使用すると、過去の日付、未来の日付、さらには昨日の日付を取得することができます。これらのオプションは、文字列の形式で提供された時刻を表示するために使用されます。例えば:

date --date "last Saturday"

または :

date -d "last Saturday"

-d または – –date オプションが受け入れられる他の文字列は、以下に示されています:

    • 明日
    • 昨日
    • 先週の土曜日
    • 次の土曜日
    • 先週
    • 来週
    • 昨年
    • 来年
    • X秒前
    • X日前
    • X週間前
    • X年前
    • X日
    • X週
    • X年

次のセクションでは、-d と – –date オプションを使用して、昨日の日付を見つけます。

LinuxのBashで昨日の日付を見つける方法

Bashで昨日の日付を見つける方法はいくつかあります。それぞれの方法について説明します:

    • 昨日の日付を -d または --date オプションを使用して見つける
    • エポック秒を使って昨日の日付を見つける

注意: 昨日の日付を見つけることは、システムの日付機能に依存します。

1. -d または --date オプションを使用して昨日の日付を見つける

Bashで昨日の日付を取得するには、以下のコマンドを使用します:

date -d "1 day ago"

または使用:

date --date "1 day ago"

1日前の文字列は、-1日で置き換えることもできます。

date --date "-1 day"

日付をフォーマット文字を使ってフォーマットすることもできます。

date --date "1 day ago" +"%Y/%m/%d"

bashで昨日の日付を取得する別の方法は、-dまたは--dateオプションを使用して、昨日という文字列を使うことです。

date --date "yesterday"

YYYY/MM/DD形式にするには、次のコマンドを使用します:

date --date "yesterday" +"%Y/%m/%d"

Linuxにおける-dまたは--dateオプションの制限は何ですか?

-d または – –date オプションは昨日の日付を提供しますが、これらのオプションにはいくつかの制約があります。これらのオプションは、出力を生成する際に夏時間やDSTを考慮せず、現在のタイムゾーンに依存します。dateコマンドは現在の日付と時刻から単純に24時間を引くことで昨日の出力を生成しますが、これによりDSTの考慮が排除されます。

そのような状況を避けるための一つの方法は、UTC(-uフラグ)時間を使用することであり、これは昨日の日付を計算するためにローカルタイムゾーンに依存せず、固定されたタイムゾーンに従って出力を提供します。dateコマンドに-uフラグを使用してください。

date -u --date "yesterday" +"%Y-%m-%d"

2. EPOCHSECONDSを使用して昨日の日付を見つける

昨日の日付はEPOCHSECONDSを使用しても見つけることができます。昨日の日付を見つけるには、次のコマンドを実行します:

printf -v yesterday '%(%Y/%m/%d)T' $(( EPOCHSECONDS – 86400 ))

昨日の日付を印刷するには、次のように実行します:

echo $yesterday

このコマンドは、EPOCHSECONDSを使用して前日の日付を計算し、それをyesterday変数にYYYY-MM-DD形式で代入します。EPOCHSECONDSは、1970年1月1日以降の秒数であり、86400は1日あたりの秒数を示します。

macOSのBashで昨日の日付を見つける方法

macOSはデフォルトのシェルとしてZshを搭載していますが、多くのユーザーは広く使用されているBashを好みます。macOSのdateコマンドはyesterday構文をサポートしていないため、macOSで昨日の日付を取得する手順は少し異なります。

macOSでは、dateコマンドを使用して昨日の日付を見つけます。

date -v-1d

macOSで昨日の日付を特定の形式で取得するには、次のようにします:

date -v-1d +"%Y/%m/%d"

-vフラグは日時を調整するために使用されます。例えば、前日の日時を取得したい場合は、マイナス(−)記号と一緒に1dを使用します。次の日の日時を取得するには、プラス(+)記号を使用するだけです。ここでdは1から31の日数を表します。詳細については、macOSのbashターミナルで以下のコマンドを実行してください:

man date

注: -v フラグは macOS 特有のものであり、Linux のような他のオペレーティングシステムでは動作しない場合があります。

結論

タスクをスケジュールし、レポートを作成し、データをバックアップするためには、システム管理者として日付と時間を操作する必要があります。Linuxシステムで昨日の日付を取得するためには、-d または --date フラグを使用してdateコマンドを実行することができます。macOSでもdateコマンドが使用されますが、-v フラグと、d 文字に正または負の整数を組み合わせて使用します。