02.Linuxの小技(kowaza)

日時をファイル名に付けよう!2 – [ profile変更編 ]

■ 日時をファイル名に付けよう!2 – [ profile変更編 ]
コマンドで日付や時間を取得して、ファイル名にする方法を紹介します。
これができるようになると、ファイルの管理が日付単位で管理できたり、バックアップした日が一目でわかるようになります。
ファイル名に日付を付ける場合
「mv file_test.txt file_test.txt_`date +%y%m%d`」
↑の様に、mvコマンドで、ファイル名の後ろに「 `date ++%y%m%d` 」とすると、実行日当日の日付が付けられるというお話をしました。


でも、それだと毎回「`date +%y%m%d`」と記述しないといけないので、かえって面倒です。
そんな時は、これから紹介するテクニックで、楽しちゃいましょう!
————————————————–
Linuxにログインして、下に紹介しているコマンドを入力してください。
$ cd     ← 「cd」コマンドでホームディレクトリへ移動します。
$ pwd     ← 「pwd」コマンドで現在のディレクトリを確認します。
/home/pakira ←「/home/ユーザ名」になっていれば、OKです。
$ ls -la   ←「ls -la」で「.」ではじまる隠しファイルを表示させます。
合計 28
drwx—— 2 pakira pakira 4096 10月 7 19:26 .
drwxr-xr-x 7 root root 4096 10月 7 19:26 ..
-rw-r–r– 1 pakira pakira 24 10月 7 19:26 .bash_logout
-rw-r–r– 1 pakira pakira 191 10月 7 19:26 .bash_profile
-rw-r–r– 1 pakira pakira 124 10月 7 19:26 .bashrc
-rw-r–r– 1 pakira pakira 5531 10月 7 19:26 .canna
今回、編集するファイルは、「.bash_profile」ファイルです。
これは、Linuxで使用するユーザの環境を設定するファイルです。
では、早速編集してみましょう。ファイルの編集には、「viエディッタ」を使用します。
$ vi .bash_profile
■ 変更前
——————「.bash_profile」ファイルの内容 ——-
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
—————————————————-
↑多少、あなたのLinuxに、表示されている内容と違うかもしれませんが、大体は同じだと思います。
このファイルに次の一行を追加してください。
『 export DAY=`date +%y%m%d` 』
■ 変更後
—————————————————-
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
export DAY=`date +%y%m%d` ←ここへ追加します。
—————————————————-
ファイルを保存して、viエディッタを終了したら、引き続き下のコマンドを入力してください。
$ source ~/.bash_profile ←「source」コマンドで設定を反映させます。
では、早速うまく設定できているか、確認してみましょう!
$ touch test.txt  ←「touch」コマンドでtest.txtを作成します。
$ ls -l       ←「ls -l」で作成されたファイルを確認します。
合計 0
-rw-rw-r– 1 pakira pakira 0 10月 7 19:37 test.txt
$ mv test.txt test.txt_$DAY←「mv」コマンドで「test.txt」ファイルをリネームします。
$ ls -l  ←「ls -l」でリネームされたファイルを確認します。
合計 0
-rw-rw-r– 1 pakira pakira 0 10月 7 19:37 test.txt_041007
↑のように、ファイル名の後ろに日付が表示されていれば、OKです。
「mv」コマンド実行時に、変更後のファイル名の後ろに「$DAY」というものを指定してます。これは、viエディッタで編集した「.bash_profile」ファイルに設定した定義になります。
「export DAY=`date +%y%m%d`」に設定しましたが、意味としては
●「`date +%y%m%d`」の結果を「DAY」にいれなさい。
という事になります。もちろん、この「DAY」の部分は、あなたの好きな文字にしても、ぜんぜん問題ありません。
たとえば、「D」であったり、「TODAY」であっても大丈夫です。
「export D=`date +%y%m%d`」
「export TODAY=`date +%y%m%d`」
ただ、注意してほしいのは、「.bash_profile」で設定した定義が「DAY」ならコマンドを実行する場合は、「$DAY」という形で、頭に「$」を付けるのを忘れないでください。
( DやTODAYでも同じです。)
これは、シェルスクリプトを知っている方ならわかるのですが、Linux上、この「DAY」は、「変数」という扱いになっているために「$」が必要になっています。
これは決まりですので、ぜひ、一緒に覚えておいてくださいね。
▼ 今日、登場したコマンドは↓のページにリファレンスがありますので
活用してください。

  Linuxコマンドリファレンス ⇒ http://linux-topics.com/01top/archives/01linux/index.html