テクめも

プログラミング関連のちょっとしたTipsなどを書いています。

ファイルの種類が判別できるfileコマンドでできること

文字コードが判別できる

テキストファイルは文字コードがいくつかあり、開けないアプリケーションもあったりするので、異なるOSの人に渡す際には事前確認しておくと良いでしょう。

$ file sample.txt
sample.txt: ASCII text

$ file sample.md
sample.md: UTF-8 Unicode text

文字コードを変換したい場合は、nkfコマンドでできます。詳細は以下を参照ください。

www.xn--ebkc7kqd.com

画像の種類やサイズが判別できる

fileコマンドで一番、よく使う用途かもしれません。種類だけでなくサイズも分かります。

$ file sample1.jpg
sample1.jpg: JPEG image data, JFIF standard 1.01, resolution (DPCM), density 59x59, segment length 16, baseline, precision 8, 300x200, frames 3

$ file sample2.png
sample2.png: PNG image data, 300 x 200, 8-bit/color RGBA, non-interlaced

拡張子を変更しただけだと中身(圧縮形式)は変わらないので、正しく種類が分かります。

$ mv sample2.png sample3.jpg
$ file sample3.jpg
sample3.jpg: PNG image data, 300 x 200, 8-bit/color RGBA, non-interlaced

その他、いろいろ試してみました

# ディレクトリ
$ file sample
sample: directory

# 動画ファイル
$ file sample.mp4
movie.mp4: ISO Media, MP4 Base Media v1 [IS0 14496-12:2003]

# 音声ファイル(iOSのボイスメモ)
$ file sample.m4a
sample.m4a: ISO Media, Apple iTunes ALAC/AAC-LC (.M4A) Audio

# PDFファイル
$ file sample.pdf
sample.pdf: PDF document, version 1.7

# PowerPointファイル
$ file sample.pptx
sample.pptx: Microsoft PowerPoint 2007+

# Pythonスクリプト
$ file sample.py
sample.py: Python script text executable, ASCII text