Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

fileコマンドの判定方法@CentOS 5.4

      2013/07/15

あるファイルが何のファイルかを判別するためのコマンドfileコマンドがありますが、どうやって調べているのかというと、

  • デバイスファイルやディレクトリ、シンボリックリンクなどの特別なファイルかどうか
  • 圧縮ファイルかどうか
  • magicファイルに基づいての判定
  • テキストファイルの種別判定

といった順番で判定しているようです。ここでいうmagicファイルとは、/usr/share/misc/magic ファイルのことで、判定条件が書かれています。例えば、以下のような記述の場合。

 # updated by Daniel Quinlan (quinlan@yggdrasil.com)
0       string          \177ELF         ELF
>4      byte            0               invalid class
>4      byte            1               32-bit
>4      byte            2               64-bit

先頭から0バイト目に\177ELFがあればELFファイル。”>” は続けての意味で、続けて先頭から4バイト目が0ならばinvalid class、1ならば32-bit、2ならば64-bitという意味で書かれています。

実際にodコマンドで/bin/lsを表示してみると、先頭がELFで4バイト目が2になっているので、ELFファイルで64bitだとわかります。(※今回は64bit OSを使用しています)

# od -c /bin/ls
0000000 177   E   L   F 002 001 001  \\0  \\0  \\0  \\0  \\0  \\0  \\0  \\0  \\0
0000020 002  \\0   >  \\0 001  \\0  \\0  \\0   `   $   @  \\0  \\0  \\0  \\0  \\0
0000040   @  \\0  \\0  \\0  \\0  \\0  \\0  \\0 250   \\ 001  \\0  \\0  \\0  \\0  \\0
以下省略

 - IT技術 , ,

336px

Message

メールアドレスが公開されることはありません。

  関連記事

no image
オフラインファイルの削除@Windows XP

Windowsにはオフラインフォルダといって、ネットワーク共有のファイルをネット …

no image
BRAVIAでDNLAを使用してみる

以前記事でかいたSonyの液晶テレビBRAVIAのKDL32-F1ですが、PS3 …

no image
Trackpointでスクロールできない@ThinkPad キーボード 55Y9024 with Windows7 64bit

ThinkPadのトラックポイントキーボード 55Y9024 を使っているのです …

no image
pythonスクリプトをダブルクリックで起動する→拡張子関連づけ詳細設定@Windows 7 with python 2.7

拡張子 .py を持ったファイルをダブルクリックで起動する方法です。 ※Wind …

no image
遅いネットワークでsshの応答が遅い

遅いネットワーク、特にモバイル端末経由でsshを使ったりする場合、一文字打つのに …

no image
グループへのユーザの追加@Linux

グループへユーザを追加する方法。 # gpasswd -a user group …

no image
Firefox 3.6.x のメモリ消費が激しすぎる

Firefox を長時間使っていると、メモリ消費が700MBを超えています。 タ …

no image
Firefox検索フォームに検索履歴ボタンを追加する@Firefox 3.0

Firefox の検索欄は、検索履歴を覚えてくれ、↓を押すと履歴が出てきます。し …

no image
Linuxコンテナ(LXC)の接続先ネットワークを物理NWにブリッジ@Ubuntu 14.04

LXCはデフォルトだと、勝手に作られたブリッジに接続し、勝手なローカルアドレスが …

no image
rsyncでsshのアクセス先ポート番号を変更する

sshのポート番号を変更している場合、ssh コマンドの場合は -p オプション …