Home About
Bash , UNIX

今日の日付でアーカイブを作成したい

頻繁にソフトウェアをリリースしたり、バックアップデータを毎日作成する場合、日付文字列をファイル名につけておくと管理が楽です。

しかし、わざわざ日付文字列を手動で入力するのは面倒な上、間違いも起ります。そこで、dateコマンドを使って、自動的に今日の日付を取得し、ファイル名に含めるようにします。

TODAY=`date +%Y%m%d`
tar cf ${TODAY}.tar ./foo

Makefile 内でも同じように使えるので、便利です。

具体例

~/Documents ディレクトリを ~/Backup/documents-日付.tar.gz としてバックアップするシェルスクリプトの例.

#!/bin/bash

mydate=`date +%Y%m%d`
# mydate=`date +%Y_%m_%d_%H%M` # 日付時間まで入れる場合
backupfile=documents-${mydate}.tar
echo $backupfile

doBackup(){
	cd $HOME
	tar cf $HOME/Backup/$backupfile Documents
	gzip $HOME/Backup/$backupfile
}
doBackup