見出し画像

EnvaderでLinux基礎コマンドを学ぶ[その5]

Envaderで基礎コマンドを学ぶその5。
今回は、Linux基礎コースの「file編」です。

file
ファイルの中身を調べることができる。

このfileコマンドの解説では、WindowsやMacを使ってるときには意識しない、なんとなくわかっているけど、言われると「はっ」とする意外な豆知識があります。

例えば、「〜.txt」とか「〜.jpg」とかファイル名の後ろについてるあれ、拡張子です。MacとかWindowsでは、表示しない設定になっていることもあるので、さらに意識しないのですが、拡張子って何のためにあるんでしょう?

「ファイルの種類を判別するものでしょっ」て、そうなんですが…

さらに誰が判別するの?

って普通はここまであまり考えないかもしれません。

で、誰のための拡張子?

それは私たち人間とアプリケーションのためです。

Envaderでは、「拡張子」と「ファイルシグネチャ」の違いについてということで、下記のように解説されています。「ファイルシグネチャ」という言葉も普段は聞き慣れない言葉です。

拡張子はOSが、拡張子をもとに起動するプログラムを変更したり、人間が一目見てファイルの種類を識別するために付けられます。つまり、拡張子はファイルの種類を人間や起動するアプリケーションが判定するためのものであり、実際のファイルの中身とは別物なのです。そこで、ファイルシグネチャが存在します。
ファイルシグネチャとは、各ファイルの先頭数バイトの決められた文字列のことです。ファイルフォーマット・マジックナンバーと呼ぶこともあります。OSは、ファイルの先頭数バイトを確認することによりファイルの種類を判別するのです。

これ見たときに、「たしかねー」と、わかってたつもりだけど、日常生活では、盲点ですよね。コンピューター・LinuxのようなOSがどうやってファイルを理解しているのかということです。

グラフィックデザインとかフロントエンドのデザインをやっている人は「EPS」ファイルとか「png」ファイルを間違ってエディタとかで開くと、意味ありげな文字の羅列を見たことがある人もいるかもしれません(そんなひといない?)。あれがシグネチャですよね。

前置き?が長くなりましたが、fileコマンドでファイルの中身をみるとこんな感じで表示される。

ASCII textですよと教えてくれる

普段グラフィカルなインターフェースで、仕事をしてる僕らにとっては、コンピューターがどうやってファイルを認識をしているのかなんてあまり関係ありません。
意識なんてしていないですが、こうしてLinuxコマンドをあらためて学んでみるとコンピューターと少しは会話できるようになるかなとちょっと思ったりします。


いいなと思ったら応援しよう!

console.log("なかむ");
もっと新しい繋がり、信頼とコミュニティを築けますように。