ファイル名に日付を付けてリネームする


Linuxサーバー管理者の技術を2日で学べる「初心者向けリナックスセミナー」
30日掛かって覚えるプロの技術を、たった2日間で学習できます。
リナックスマスター2日間集中セミナー【CentOS7版】
 (今すぐ↑をクリックしてください。)

サーバー管理していると、ファイルをバックアップする場合や、
ファイル名を別名保存する時、いつ、その作業を行ったのかを
記録したい場合があります。

私が過去経験した現場では、設定ファイルを変更する際、
変更前ファイルは削除せず、必ず保存する運用ルールになっていました。

それは、設定を変更した事によって何かトラブルが起きても、
すぐ元に戻せるようにする為です。
その時の決まりとして、変更前の設定ファイルには、
変更当日日付を付加して管理するという決まりになっていました。

具体的に言うと、『 ファイル名 + 日付 』という形式で、
ファイルをバックアップしていました。

従って、過去に何度も設定変更しているファイルは、
ファイル名の日付部分の違うファイルがいくつもあり、
歴管理されることになります。

これは、後から何年何月何日に設定ファイルの
どこを変更したのかを一目瞭然にしておく為です。

今回はその日付をファイル名に付加する方法を紹介します。
日付を表示するコマンドは「 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」と実行すれば、
「年月日時分秒」まで表示できます。
この表記を使うと、一日に同じファイル名でいくつもバックアップする場合、
ファイル名の重複を避ける事ができます。



■CentOS7.1サーバー構築マニュアルを無料プレゼント
 「CentOS7.1」のサーバー構築手順、「VMware Player」の
 ダウンロードとインストール手順をまとめたマニュアルを
 無料でプレゼントしています。


 詳しくは↓のページで説明していますので、今すぐクリックしてダウンロードしてください。
 無料マニュアルをダウンロードする  無料マニュアルをダウンロードする