ファイルコマンドデータベースとテキストファイル認識

ファイルコマンドデータベースとテキストファイル認識

次の2つの声明が正しいかどうか教えてください。

フォルダには、現在利用可能なファイル形式が何であるかを知らせるデータベース/テーブルがあります(/usr/share/mime/magicコマンドの後にファイル名を入力すると取得できる出力)。file

コマンド出力に「text」という単語が含まれるたびに、fileこれはテキストビューアを使用して読み取ることができる項目を参照しますが、「text」を持たない項目は一種のバイナリファイルです。

答え1

/usr/share/mime/magicフォルダには、現在利用可能なファイル形式(「file」コマンドの後にファイルを入力したときに得られる出力)を提供するデータベース/テーブルがあります。

正しいが/usr/share/mime/magic使用されているディレクトリではありませんfile:ファイルは次のとおりです。MIMEタイプデータベースのみ

マンページからfile:「このファイルを識別する情報は、コンパイルされたマジックファイル/usr/share/file/misc/magic.mgcまたは/usr/share/file/misc/magicディレクトリから読み取られます。コンパイル)は存在しません。

実際、私のArch Linuxシステムでは、このファイルはこのfileパッケージの一部です。

「ファイル」コマンド出力に「テキスト」という単語が含まれるたびに、これはテキストビューアを使用して読み取ることができる項目を参照しますが、「テキスト」を持たない項目は一種のバイナリファイルです。

正しいようです(反例を見つけようとしましたが、見つかりませんでした)。

答え2

データベースの場所はfileインストール/バージョンによって異なります。 linuxmanpages.com バージョンfile(1)説明する:

文書

/usr/share/file/magic.mgc
    デフォルトでコンパイルされたマジック番号のリスト
/usr/share/file/magic
    基本マジックナンバー一覧
/usr/share/file/magic.mime.mgc
    -iオプションを指定した場合、MIMEタイプの出力に使用されるデフォルトのコンパイル済みマジック番号のリスト。
/usr/share/file/magic.mime
    -iオプションが指定されている場合は、MIMEタイプの出力に使用されるマジックナンバーのデフォルトのリストです。
/etc/magic
    魔法の知恵を込めた地元のサプリメントです。

しかし、CygwinとDebianは次のようにfile(1)言います。

文書

/usr/share/misc/magic.mgcデフォルトのコンパイルされたマジックのリスト。
/usr/share/misc/magicデフォルトのマジックファイルを含むディレクトリ。

状況をさらに混乱させるために、Debianには空のディレクトリへの/usr/share/misc/magic シンボリックリンクがありますが、Cygwinにはやや大きなファイル(600K以上)へのシンボリックリンクがあります。それで私は明らかな実験をしました。/usr/share/file/magic/usr/share/file/magic/usr/share/misc/magic

file /usr/share/misc/magic
/usr/share/misc/magic: Non-ISO extended-ASCII text, with overstriking

見てみると、viASCIIテキストのように見えます(ただし、17000行すべてを再確認するわけではありません)。 「overstrike」は、バックスペースキーがあることを示すようです。

echo -e "1 =\b/ 2" | file -
/dev/stdin: ASCII text, with overstriking

/usr/share/misc/magicそれで、バックスペースキーを検索して2つを見つけました。

関連情報