サーバー管理していると、ファイルをバックアップする場合や、
ファイル名を別名保存する時、いつ、その作業を行ったのかを
記録したい場合があります。
私が過去経験した現場では、設定ファイルを変更する際、
変更前ファイルは削除せず、必ず保存する運用ルールになっていました。
それは、設定を変更した事によって何かトラブルが起きても、
すぐ元に戻せるようにする為です。
その時の決まりとして、変更前の設定ファイルには、
変更当日日付を付加して管理するという決まりになっていました。
具体的に言うと、『 ファイル名 + 日付 』という形式で、
ファイルをバックアップしていました。
従って、過去に何度も設定変更しているファイルは、
ファイル名の日付部分の違うファイルがいくつもあり、
歴管理されることになります。
これは、後から何年何月何日に設定ファイルの
どこを変更したのかを一目瞭然にしておく為です。
今回はその日付をファイル名に付加する方法を紹介します。
日付を表示するコマンドは「 date 」コマンドを使います。
----------------------------------------------------------
$ date
2011年 12月 17日 土曜日 00:11:21 JST
----------------------------------------------------------
日付が表示されました。
では↓のように実行してください。
----------------------------------------------------------
$ date +%Y%m%d
20111217
----------------------------------------------------------
「2011年 12月 17日」が「20111217」と表示されました。
ファイル名に付ける日付は「20111217」を使用します。
それではファイル名に日付を付けて保存します。
----------------------------------------------------------
$ touch file_test.txt ←touchコマンドで「file_test.txt」ファイルを作る。
$ ls -l ←ファイルの情報を表示する。
-rw-rw-r-- 1 pakira pakira 0 12月 17 00:16 file_test.txt
$ mv file_test.txt file_test.txt_`date +%Y%m%d` ←dateコマンドを実行する。
$ ls -l file_test.txt* ←ファイル名が変わっていることを確認する。
-rw-rw-r-- 1 pakira pakira 0 12月 17 00:18 file_test.txt_20111217
----------------------------------------------------------
`date +%Y%m%d`をファイル名の後ろ、もしくは前に付けてmvやcpコマンドなどを実行すれば
日付付きのファイル名でファイルを保存することができます。
「`」はバッククォート、またはアクサングラーブと言い、[Shift]+[@]キーで入力します。
「`」で括った変数はコマンドとして実行されます。
また、「`」ではなく、$()で括って実行しても同じ結果が得られます。
----------------------------------------------------------
$ touch file_test2.txt_$(date +%Y%m%d)
$ ls -l file_test2.txt*
-rw-rw-r-- 1 pakira pakira 0 12月 17 00:31 file_test2.txt_20111217
----------------------------------------------------------
今回は、「%Y%m%d」と記述して年月日をファイル名に付けましたが、
この箇所を変更することで分や秒を付けることも可能です。
詳しくは下記を確認してください。
-------------------------
書式 説明
-------------------------
%Y 年(4桁表記)
%y 年(2桁表記)
%m 月(01〜12)
%d 日(01〜31)
%H 時(00〜23)
%I 時(00〜12)
%M 分(00〜59)
%S 秒(00〜59)
%a 曜日(Sun〜Sat)
%b 月名(Jan〜Dec)
-------------------------
上記を参考に「date +%Y%m%d%H%M%S」と実行すれば、「年月日時分秒」まで表示できます。
上記を参考に「date +%Y%m%d%H%M%S」と実行すれば、
「年月日時分秒」まで表示できます。
この表記を使うと、一日に同じファイル名でいくつもバックアップする場合、
ファイル名の重複を避ける事ができます。
P.S
ファイル名に日付を付けてリネームするのもっと高い技術を身につけたいならこちら
<<関連記事>>
・MIMEでエンコードされたテキストを読めるように変換する
・viエディタで文字をコピーする
・ハードディスクの使用状況を調べるには
・tar.bz2ファイルを解凍して展開するには
・tar.gz形式のファイルを解凍、展開するには