2012-01-19 38 views
5

我正在編寫腳本來備份各種不同的文件。我想要做的是存儲有關備份的元信息。目前我使用的文件名,因此,例如:是否有跨操作系統向文件添加「標籤」的標準方式

backups/cool_file_bkp_c20120119_104955_d20120102 

其中c表示文件的創建日期時間以及d代表「數據時間」,這代表什麼cool_file實際上包含。我目前使用「數據時間」的原因是後面的備份可能由同一個文件組成,在這種情況下,我知道我可以安全地替換之前備份的相同「數據時間」,而不會丟失任何信息。

這似乎是一個可怕的方式做事情,但它似乎有被不依賴於操作系統的好處。有沒有更好的辦法?

FYI:我使用的Python腳本我的備份創建,目前需要有在Windows XP,2003和紅帽Linux這個工作。

編輯:解決方案: 從下面的答案中,我推斷出文件中的元數據不是以標準方式廣泛支持。鑑於我的目標是將元數據與文件緊密結合,似乎將文件與元數據文本文件一起歸檔是一種方法。

+0

另一個解決方案將被存儲在文件本身在元數據中,或使用含有表一個額外的文件/數據庫的列md5hash,CREATIONTIME,DATATIME。 –

+0

我可以看到很多方法將元數據存儲在外部文件中,但我實際上並沒有看到當前系統出了什麼問題! – katrielalex

回答

3

我會採取兩種方法有一個:

創建一個獨立的文件,在backub目錄,將包含所需的元數據 - 這可能在人類可讀的形式somethnng,只是爲了讓生活更輕鬆,比如json數據結構,或者「ini」文件。

另一個是存檔所複製的文件 - possibily使用「拉鍊」,並與它一起捆綁與所需的元數據的文本文件。

創建zip檔案以將文件組合在一起的想法在幾個地方使用,例如在java .jar文件,Open Document Format(由幾個辦公室創建的offfice文件),Office Open XML(Microsoft特定的辦公室文件),甚至Python語言自己的雞蛋。

Python標準庫中的ziplib模塊具有實現此功能所需的所有工具 - 只需在與原始文件捆綁的文件中使用字典表示即可獲得所需的元數據。

在任何這些方法中,您當然還需要幫助程序腳本來查看和過濾文件上的元數據。

1

不同的文件系統(未不同的操作系統)具有用於存儲元數據不同的能力。 NTFS有很多可能性,而FAT非常有限,而ext *在兩者之間。沒有廣泛的(主觀術語,是)文件系統支持您可以使用的自定義標籤。因此,不存在使用這種標籤的標準方式。 在Windows上嘗試引入擴展屬性,但是這些都是以一種幾乎不可用的棘手方式實現的。

所以把任何你可以到文件名仍然是唯一的工作方法。請記住,文件系統對文件名和文件路徑長度有限制,使用這種方法可以超出限制,所以要小心。

相關問題