是否有一個實用程式可以將檔案內容與副檔名進行比較?

是否有一個實用程式可以將檔案內容與副檔名進行比較?

我正在尋找一個實用程式(適用於 Linux 或 Windows),它可以驗證檔案內容是否與擴展名相符。這是為了捕獲嚴重損壞的檔案。

我即將編寫一個小 bash 腳本,該腳本只會在所有內容上運行“文件”,但我不想弄清楚“文件”對於我所處理的所有格式正確的文件類型返回什麼即將遭遇。

背景:一位朋友最近不小心刪除了他們的 Windows 使用者資料夾(是的…桌面、註冊表、我的文檔,所有這些…)。我使用了激進的取消擦除​​實用程式來盡可能地恢復。此特定實用程式會因為某些原因而恢復相同檔案的多個副本(即「Letter.doc」、「Letter(1).doc」、「Letter(2).doc」等)。其中一些文件將包含隨機垃圾,有些將是有效文檔,其中可能是相同的文件.

因此,我使用 fdupes 和 perl 腳本來消除所有重複項,但現在我想將那些看起來可能是原始文件的文件與可能不是的文件分開。我不敢相信我是第一個需要這樣做的人...

答案1

您可以嘗試TrID網路程序(還有一個命令列介面在線的版本)。它基於內建(和可擴展)庫的二進位簽章來識別檔案。 這是一個列表儘管可以手動新增類型的定義,但它預設可以識別的檔案副檔名的數量。

請注意,如果文件的二進制簽名是不是完好無損,軟體不會知道檔案已損壞。這取決於使用該檔案檢查是否損壞的應用程式的實現(因為沒有辦法「只知道」檔案是否已損壞)。

這就是檔案的工作方式,由使用所述二進位檔案來檢查它們是否損壞的程式決定(某些檔案類型在其中儲存校驗和)。

答案2

對於 Office 應用程序,開啟對話方塊中有一個「開啟並修復...」選項。

對於影像,IrfanView 可以重建檔案頭。

對於視頻,VLC Player 也會執行相同的操作。

但就像 EBGreen 上面所說的那樣,它與消費級產品非常不同,它實際上可以對許多文件類型執行此操作,更不用說所有文件類型了。

相關內容