Linux
Tips |
|
日時をファイル名に付けるには
北浦訓行
2002/1/10
|
ファイル名の一部に、そのファイルを作成した日時を付けるには、バッククオートを使用する。バッククオートを使用すると、コマンドの出力を文字列として扱うことができる。そこで、バッククオートと日付を表示するdateコマンドを組み合わせれば、ファイル名に日付を入れることができるようになる。
まず、dateコマンドの出力結果について考えてみる。引数を指定しないでdateコマンドを実行すると、以下のような結果が表示される。
$ date
2002年 1月 4日(金) 13時01分03秒 JST ←Vine Linux 2.1.5の場合 |
このままのファイル名では何かと面倒なので、単に数字の羅列(例えば「20020104」)のような形式に変更する。そのためには、dateコマンドのオプションを以下のように指定する。
$ date +%Y%m%d
20020104 ←2002年1月4日 |
引数の「+%Y%m%d」は、現在の日時を年月日の形式にするものだ。時刻を含めるなら、%Hや%Mなどを入れるといいだろう。
$ date +%Y%m%d%H%M
200201041026 ←2002年1月4日午前10時26分 |
最初に説明したように、コマンドの出力結果を文字列として扱うには、コマンドをバッククオート(「`」:[Shift]+[@]キーで入力)で囲む。例えば、touchコマンドで日付のファイルを作成するには、以下のようにする。
$ touch `date +%Y%m%d`
$ ls -l
合計 0
-rw-rw-r-- 1 nori nori 0 Jan 4 13:10 20020104 |
bashでは、「$(コマンド)」としてもバッククオートで囲んだのと同じ結果が得られる。バッククオートとシングルクオート(「'」:[Shift]+[7]キーで入力)は見分けがつきにくいので、bashの場合は「$()」を使った方がいいだろう。
$ touch $(date +%Y%m%d)
$ ls -l
合計 0
-rw-rw-r-- 1 nori nori 0 Jan 4 13:14 20020104 |
バックアップしたファイルにその日の日付を付けると、いつバックアップしたものかがすぐに分かるので便利だ。例えば、ホームディレクトリをtarコマンドでまとめるには、次のようにする。
$ tar cvfz `date +%Y%m%d`.tar.gz ~ |
Linux Squareフォーラム Linux Tipsカテゴリ別インデックス |
Linux & OSS 記事ランキング
本日
月間