詳細な検査のためのより複雑なファイルコマンドはありますか?

詳細な検査のためのより複雑なファイルコマンドはありますか?

時には普通に見えますfile注文する(私のUbuntuシステムでは5.04)それほど複雑ではありません(または間違って使用している可能性があります)。

たとえば、ファイルに対してこれを実行し、.exeそのファイルにいくつかのアーカイブが含まれていると確信した場合、出力は次のようになります。

$ improved-file foo.exe
foo.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit
         .zip archive included (just use unzip to extract)

その他:

  • 他の形式の接続を検出しません。
  • .epub などの一般的なファイル形式は検出されません。内部にいくつかの標準化された .xml ファイルなどを含む .zip コンテナだけです ( file「データ」を表示)。

一つ対応する.exeファイルの例アーカイブを含める - いくつかのアーカイブ形式を推測し、試行錯誤アプローチを使用して対応する解凍コマンドを試しましたが、最終的には効果的ですが、自動化された検査指向のワークフローを好みます。

答え1

一体型ツールは考えられませんが、特定のカテゴリで多数のファイルを処理できるプログラムがあります。

例えば、p7zipさまざまなアーカイブ形式が認識されるため、ファイルがアーカイブラであると疑われる場合は7z l実行してみてください。

$ 7z l ta12b563enu.exe
Type = Cab
Method = MSZip

ファイルが画像であると思われる場合は、次のことを試してください。イメージマジシャン

$ identify keyboard.jpg.gz
keyboard.jpg.gz=>/tmp/magick-XXV8aR5R JPEG 639x426 639x426+0+0 8-bit DirectClass 37.5KB 0.000u 0:00.000

オーディオまたはビデオファイルの場合mplayer -identify -frames 0

認識できないファイルが見つかった場合はfileお問い合わせください。あなたの魔法図書館の著者

答え2

大丈夫ですfile。それはしなければならないことをしています:ファイルの規則についてファイルをチェックすることですmagic(5)。このタイプのファイルを識別する一般的な方法を見つけるには、新しい魔法ルールを送信できます。詳しくはマンページをご覧くださいmagic

file私が決してできないと思われる1つは、「接続検出」です。ファイル内のすべてのバイトをスキャンしないと、次のセグメントがいつ始まるかを知る方法はありません。何かがfile完了していないか、完了したくありません。

ただし、epubファイルを区別するには、同じ基本構造を使用するEarファイルとの違いを検出する必要があります。

関連情報