LinuxでN日前の日付を表示する方法

この記事では、Linux環境で「N日前の日付」を表示する方法について解説します。dateコマンドを使った基本的な方法から、シェルスクリプトによる応用例までを幅広く取り上げます。

目次

基本的な方法: dateコマンドを使う

最もシンプルな方法はdateコマンドを使用する方法です。このコマンドはLinuxにデフォルトでインストールされているため、追加のインストールは不要です。

# 3日前の日付を表示
date -d '3 days ago'

コマンドの解説

このコマンドは`date -d`オプションで、指定した日数分「過去」に遡った日付を表示します。`’3 days ago’`という部分で「3日前」という日付に設定しています。

シェルスクリプトでN日前の日付を自動取得

繰り返し同じ処理を実行する場合、シェルスクリプトを作成することで自動化することが可能です。

#!/bin/bash
# 引数で日数を指定
days_ago=$1
# N日前の日付を表示
date -d "$days_ago days ago"

スクリプトの解説

このスクリプトは、引数で日数(`$1`)を受け取り、その日数分過去に遡った日付を`date -d`コマンドで表示します。

応用例

例1: N日前の日付をファイル名に含める

#!/bin/bash
days_ago=$1
file_date=$(date -d "$days_ago days ago" '+%Y%m%d')
touch "backup_$file_date.txt"

例2: N日前に変更されたファイルを検索

#!/bin/bash
days_ago=$1
find_date=$(date -d "$days_ago days ago" '+%Y-%m-%d')
find /path/to/dir -type f -newermt "$find_date" ! -newermt "$find_date +1 days"

例3: N日前のログファイルを自動削除

#!/bin/bash
days_ago=$1
find_date=$(date -d "$days_ago days ago" '+%Y%m%d')
rm -f "/path/to/logs/log_$find_date.log"

例4: N日前の特定の時間にCronで処理を実行

# Cron設定例(毎日午前3時に3日前のログを削除)
0 3 * * * /path/to/script.sh 3

まとめ

LinuxでN日前の日付を操作する手段はいくつかありますが、基本的にはdateコマンドが最もシンプルで効率的です。シェルスクリプトでさらに高度な操作が可能になり、日常の作業を大いに助けてくれます。

コメント

コメントする

目次