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 Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間