目次
はじめに
みなさま、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コマンドでファイル形式を確認することをおすすめします。