ファイルの内容を拡張子と比較するユーティリティはありますか?

ファイルの内容を拡張子と比較するユーティリティはありますか?

ファイルの内容が拡張子と一致しているかどうかを確認できるユーティリティ (Linux または Windows 用) を探しています。これは、ひどく破損したファイルを検出するためのものです。

私は、すべてに対して「file」を実行するだけの小さな bash スクリプトを書こうとしていますが、これから遭遇するすべての適切にフォーマットされたファイル タイプに対して「file」が何を返すかを把握したくありません。

背景: 友人が最近誤って Windows ユーザー フォルダ (デスクトップ、レジストリ、My Docs、すべて) を消去してしまいました。私は強力な消去解除ユーティリティを使用して、できる限りの復元を行いました。この特定のユーティリティは、何らかの理由で同じファイルの複数のコピーを復元します (つまり、「Letter.doc」、「Letter(1).doc」、「Letter(2).doc」など)。これらのファイルの一部にはランダムなジャンク ファイル、有効なドキュメント、そして同じ書類。

そこで、fdupes と Perl スクリプトを使用して重複ファイルをすべて削除しましたが、今度は元のファイルである可能性があるファイルとそうでない可能性のあるファイルを分離したいと考えています。これを実行する必要があるのは私が初めてだなんて信じられません...

答え1

ぜひお試しくださいトライドットネットプログラム(コマンドラインオンラインバージョン) 組み込みの (拡張可能な) ライブラリに基づいて、バイナリ署名に基づいてファイルを識別します。 ここにリストがありますデフォルトで識別できるファイル拡張子のリストが表示されますが、新しいタイプの定義を手動で追加することもできます。

ファイルのバイナリ署名がないファイルが破損していない限り、ソフトウェアはファイルが破損していることを認識しません。破損の有無をチェックするためにファイルを使用するアプリケーションの実装次第です (ファイルが破損しているかどうかを「ただ知る」方法はないため)。

これはファイルの動作方法に過ぎず、バイナリ ファイルが破損しているかどうかを確認するのは、そのバイナリ ファイルを使用するプログラム次第です (一部のファイル タイプでは、ファイル内にチェックサムが保存されます)。

答え2

Office アプリの場合、開くダイアログに [開いて修復...] オプションがあります。

画像の場合、IrfanView はファイル ヘッダーを再構築できます。

ビデオの場合、VLC プレーヤーも同様に動作します。

しかし、EBGreen が上で述べたように、すべてのファイル タイプどころか、多くのファイル タイプに対して実際にこれを行う消費者レベルの製品が存在する可能性はほとんどありません。

関連情報