Linux便利コマンド : file

うめだ
2022-12-22
2023-06-09
目次

はじめに

みなさま、fileコマンドをご存じでしょうか?

見慣れないファイルをcatコマンドで内容の確認をしようとした時、そのファイルがバイナリファイルだったため、ターミナルの表示が崩れ、コマンド入力もうけつけなくなってしまった事、誰しも経験したことがあると思います。

そんな苦い経験から、私は見慣れないファイルの内容を確認する際、fileコマンドで該当ファイルの形式を確認するようにしています。

 

環境

OS : AlmaLinux 8
fileバージョン : 5.33

使い方

使い方はいたって簡単です。

fileコマンドの引数として、対象のファイルを指定するだけです。

$ ls -la test.txt
-rw-rw-r-- 1 future future 34 Dec 4 17:03 test.txt
$
$ file test.txt
test.txt: UTF-8 Unicode text
$

コマンド結果から、文字コード:utf8のテキストファイルだということがわかりましたので、安心して、catで開いてみましょう。


$ cat test.txt
テキストファイルです。
$

次に、バイナリファイルの場合、コマンド結果がどのように表示されるか確認してみましょう。

ということで、lsコマンドのファイルを指定してみます。

$ which ls
alias ls='ls --color=auto'
/usr/bin/ls
$
$ ls -la /usr/bin/ls
-rwxr-xr-x 1 root root 143480 Oct 9 2021 /usr/bin/ls
$

$ file /usr/bin/ls
/usr/bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=305acfa1dea641b3c48e3aa9da8cfb74eb3efa6c, stripped
$

ELFと表示されるとバイナリファイルということになります。

※ELF:「Executable and Linking Format」の略で、多くのLinuxディストリビューションで採用されている標準バイナリ形式とのこと

私の環境で、lsコマンドのファイルをcatコマンドで内容を表示させると意味不明文字列が表示され、コマンド入力できなくなってしまいました。

実際に試される際には自己責任でお願いします。

まとめ

いかがでしたか?

私のように苦い経験を繰り返さないためにも、見慣れないファイルを開く際には、事前にfileコマンドでファイル形式を確認することをおすすめします。