ハードドライブの一連のGUIDのようなフォルダーに保存された画像のライブラリを持っていた、死ぬことを決定したアプリがあります。ファイル自体にはファイル拡張子がありません。ファイル自体をその名前/拡張子/MIME に関連付ける内部データベース (回復不能/破損) があったはずです。したがって、自分のものを取り戻すために、ディスクを検索して、少なくともどのファイルが画像 (jpeg および png ファイル) であるかを識別できるようにしたいと考えています。jpeg と png の両方で、ファイルの最初の数バイトに特定のバイト シーケンスがあることがわかっています。私が持っている大規模にネストされたファイルシステム構造の各ファイルの最初の数バイトにあるこれらの既知のバイトシーケンスに一致するgrepコマンドはありますか(たとえば、フォルダー0からf、それぞれにフォルダー0からfが含まれ、いくつかのレベルの深さでネストされ、 uid ファイル名を持つファイル。
質問する
308 次
1 に答える
0
現在のディレクトリから開始.
:
find . -type f -print0 | xargs -J fname -0 -P 4 identify -ping fname 2>|/dev/null
これにより、ImageMagick が識別できるファイルが出力されます。これはほとんどが画像ですが、例外もあります (txt ファイルなど)。ImageMagick は、このタスクでも特に高速ではないため、利用可能なものによっては、より高速な代替手段がある場合があります。たとえば、PIL
Python 用のパッケージは、サポートする画像形式の数が少ないため、これを高速化しますが、タスクには十分な場合があります。
于 2013-01-22T05:18:43.977 に答える