Ubuntudでファイルの種類を確認する方法です。
fileコマンドでファイルの種類を確認
「file」コマンドで確認したいファイルを指定すると、対象ファイルがどのような種類なのかを確認することができます。
拡張子がついていないファイルもこれで簡単に種類を確認することができます。
file ファイル
下記はfileコマンドの実行例です。
それぞれのファイル種類が表示されていることが確認できます。
$ file /etc/passwd /etc/passwd: ASCII text $ file data_01 data_01: PNG image data, 695 x 417, 8-bit/color RGBA, non-interlaced $ file latest-ja.tar.gz latest-ja.tar.gz: gzip compressed data, last modified: Fri Jan 6 08:00:19 2023, from Unix, original size modulo 2^32 70881280 $ file text_01.txt.zip text_01.txt.zip: Zip archive data, at least v1.0 to extract, compression method=store
オプション
「file」コマンドで普段使いそうなオプションを抜粋して紹介します。
- -f リストファイル : ファイルから確認対象を読み込む
- -L : シンボリックリンクのリンク先を調べる
- -z : 圧縮されたファイルを調べる
-f リストファイル : ファイルから確認対象を読み込む
確認対象ファイルをファイルに記述されているリストから読み込みます。
検証用に下記の内容が記述された「filelist.txt」というファイルを作成しました。
$ cat filelist.txt /etc/passwd /bin/sh /home/tamohiko/vpslife.tar.gz
「-f」オプションを使用して「filelist.txt」を指定すると、ファイルに記述されているリストを読み込んで「file」コマンドを実行してくれます
$ file -f filelist.txt /etc/passwd: ASCII text /bin/sh: symbolic link to dash /home/tamohiko/vpslife.tar.gz: gzip compressed data, from Unix, original size modulo 2^32 212111360
-L : シンボリックリンクのリンク先を調べる
「-L」オプションを使用すると、確認対象がシンボリックリンクであった場合リンク先の確認を行ってくれます。
「/bin/sh」を確認してみると、dashへのシンボリックリンクであると表示されました。
$ file /bin/sh /bin/sh: symbolic link to dash
「-L」オプションを使用すると、シンボリックリンク先のdashを確認してくれます。
$ file -L /bin/sh /bin/sh: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=f7ab02fc1b8ff61b41647c1e16ec9d95ba5de9f0, for GNU/Linux 3.2.0, stripped
「/bin/dash」も確認してみると「file -L /bin/sh」で表示されている内容と同じであることが分かります。
$ file /bin/dash /bin/dash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=f7ab02fc1b8ff61b41647c1e16ec9d95ba5de9f0, for GNU/Linux 3.2.0, stripped
-z : 圧縮されたファイルを調べる
「-z」オプションを使用すると、圧縮されたファイルの種類を確認することができます。
「vpslife.tar.gz」という「gzip」で圧縮されているファイルを「-z」オプションを使用して種類の確認を行ってみると、tarでアーカイブされたファイルであることが確認できます。
$ file -z vpslife.tar.gz vpslife.tar.gz: POSIX tar archive (GNU) (gzip compressed data, from Unix)
「-z」オプションを使用しなかった場合は、「gzip」で圧縮されたファイルであると表示されます。
$ file vpslife.tar.gz vpslife.tar.gz: gzip compressed data, from Unix, original size modulo 2^32 212111360
コメント