2012-01-19 10 views
5

私はさまざまなファイルのバックアップを作成するスクリプトを作成しています。私がしたいのは、バックアップに関するメタ情報を保存することです。現在、私は、例えばので、ファイル名を使用しています:オペレーティングシステム間でファイルに「タグ」を追加する標準的な方法はありますか?

cは、ファイルの作成日時を表し、 dはcool_fileが実際に含まれているものを表す「データ時間」を表し
backups/cool_file_bkp_c20120119_104955_d20120102 

。私が現在「データ時間」を使用しているのは、後で同じファイルをバックアップするということです。この場合、情報を失うことなく同じ「データ時間」の以前のバックアップを安全に置き換えることができます。

これは非常にうまくやっているようですが、OSに依存しないという利点があるようです。より良い方法がありますか?

FYI:私はバックアップ作成をスクリプト化するためにPythonを使用していますが、現在はWindows XP、2003、Redhat Linux上で動作させる必要があります。

編集:解決策: 以下の回答から、ファイルのメタデータは標準的な方法で広くサポートされていないと推測しました。私の目標は、メタデータをファイルと密接に結合することだったので、メタデータのテキストファイルと一緒にファイルをアーカイブするのが最善の方法です。

+0

ファイル自体にメタデータを格納するか、md5hash、creationtime、datatime列のテーブルを含む追加のファイル/データベースを使用することもできます。 –

+0

メタデータを外部ファイルに保存する方法はたくさんありますが、現在のシステムで何が問題なのかは実際には分かりません。 – katrielalex

答えて

3

私はそこに2つの方法のいずれかを取ると思います:

は、希望するメタデータを含んでいるでしょうbackubのディレクトリ上のスタンドアローンファイル、作成 - これはただの生活を楽にするために、人間が読める形式でsomethnng可能にjsonデータ構造、または "ini"のようなファイルです。

もう1つは、コピーされたファイルをアーカイブすることです(可能な場合は "zip"を使用します)。必要なメタデータを含むテキストファイルをバンドルします。

あなたがまとめたいファイルをグループ化するためのzipアーカイブを作成するアイデアは、java .jarファイル、Open Document Format(いくつかのオフィススイートで作成されたファイル)、Office Open XMLファイル)、そしてPython言語自身の卵まで。

Pythonの標準ライブラリのziplibモジュールには、これを実現するために必要なすべてのツールがあります。必要なだけ多くのメタデータを持つために、オリジナルのものにバンドルされたファイルで辞書の表現を使用できます。

これらのアプローチのいずれかでは、もちろん、ファイルのメタデータを参照してフィルタリングするためのヘルパースクリプトも必要です。

1

異なるファイルシステム(異なるオペレーティングシステム)は、メタデータを格納する能力が異なります。 NTFSには豊富な可能性がありますが、FATは非常に限られており、ext *は間にあります。広く普及している(主観的な言葉、イエス)ファイルシステムでは、使用できるカスタムタグをサポートしていません。したがって、そのようなタグを扱う標準的な方法は存在しません。 Windowsでは拡張属性を導入しようとしましたが、これらはほとんど使用できないようなやり方で実装されていました。

ファイル名にできるものを入れておくことは、唯一の作業方法です。ファイルシステムにはファイル名とファイルパスの長さに制限があり、この方法では制限を超える可能性があるので注意してください。

関連する問題