Bashシェルスクリプトでファイルやディレクトリを”.yyyymmdd”付きでバックアップする
はじめに
Unix上のファイルやディレクトリを変更する前に、バックアップするために日付つきファイル名としてコピーしておくことがありますね。
「今日は何年何月何日だったっけ?」と悩む必要がないように、現在日時を .YYYYMMDD
で取得し、コピー先ファイル名のサフィックスとして付与するコマンドを紹介します。
".YYYYMMDD" サフィックス付きでバックアップファイルを作成するコマンド
以下のように、 {,.$(date +%Y%m%d)}
という記述を使用します。
# file_to_backupというファイルが存在
$ ls
file_to_backup
# -a オプション付きでコピー
$ cp -a file_to_backup{,.$(date +%Y%m%d)}
# 年月日付きでファイルがバックアップされている
$ ls
file_to_backup file_to_backup.20130420
簡単な解説
実行されたコマンドは以下のように解釈されます。
$ cp -a file_to_backup file_to_backup.$(date +%Y%m%d)
cp
コマンドの -a
オプションは、所有者、パーミッションをそのまま保持するためのオプションです。また、 -R
オプションと同様、ディレクトリの場合には階層構造を保持したまま再帰的にコピーします。
ディスカッション
コメント一覧
まだ、コメントがありません