中身を見る

INPUT · スライド

ファイルの素性を見る

01 / 08

名前と中身のあいだにあるもの

ここまでで「名前を見る(ls)」と「中身を見る(cat)」ができるようになったね。

でもファイルには、その両方に入らない情報があるよ。いつ作られたか・誰のものか・何バイトか・そもそもファイルなのか入れ物なのか

こういう「ファイルについての情報」を見るのが stat だよ。

02 / 08

`ls -l` でも少しは見えていた

実は第1章で少し見ていたんだ。ls -l の1行に、いろいろ詰まっていたよね。

左端の - が「ふつうのファイル」の印(入れ物なら d)。そのあとが権限、1 がリンク数、manabiya が持ち主とグループ、7 が大きさ、そのあとが更新した日時だよ。

stat はこれを1行に詰めずに、ぜんぶ広げて見せてくれる道具だよ。

~ $ ls -l neko.txt-rw-r--r--    1 manabiya manabiya         7 Aug 21 06:06 neko.txt

03 / 08

stat — 全部広げて見せる

stat にファイル名を渡すと、こんなふうに出るよ。

Size が大きさ、regular file が種類。Inode はファイルに付いた番号で、名前とは別にファイルを識別するものだよ(「ファイルシステム」の章で使うね)。

Access / Modify / Change の3つの時刻があるのが面白いところ。読んだ時刻・中身を変えた時刻・情報を変えた時刻を、それぞれ別に覚えているんだ。

~ $ stat neko.txt  File: neko.txt  Size: 7               Blocks: 1          IO Block: 8192   regular fileDevice: 13h/19d Inode: 4           Links: 1Access: (0644/-rw-r--r--)  Uid: (  100/manabiya)   Gid: (  101/manabiya)

04 / 08

`-c` で1つだけ取り出す

全部要らないときは -c で欲しいものだけ出せるよ。% から始まる短い記号で指定するんだ。

  • %s … 大きさ(バイト)
  • %F … 種類(regular file / directory
  • %a … 権限を8進数で(644
  • %h … リンク数
  • %n … 名前

数だけが出るので、そのまま計算や次のコマンドに渡せるのがいいところだよ。

~ $ stat -c %s neko.txt7

05 / 08

od — バイトそのものを見る

cat はファイルの中身を人が読める形にして出してくれる。でも「本当は何が入っているのか」を見たいときもあるよ。

od -c を使うと、1バイトずつ並べて見せてくれる。odoctal dump(8進数で書き出す)の略だよ。

見てみると、ねこ343 201 255 343 201 2236バイトになっているのが分かる。日本語の1文字は3バイト、というのを実際に確かめられるんだ。

~ $ od -c neko.txt0000000 343 201 255 343 201 223  \n0000007

06 / 08

`hexdump` と `xxd` — 16進数で見る

同じことを16進数でやるのが hexdump -Cxxd だよ。

右端に「読める文字なら文字、読めなければ .」が並ぶので、od より読みやすいことが多い。

改行が 0a として見えるのがポイントだよ。ふだん目に見えない文字も、こうすれば確かめられるんだ。

~ $ hexdump -C eigo.txt00000000  61 62 63 20 64 65 66 20  67 68 69 0a 6a 6b 6c 0a  |abc def ghi.jkl.|

07 / 08

`file` はここには無い

ふつうの Linux には file というコマンドがあって、中身を見て種類を当てることができるよ。file shashin.jpg と打つと JPEG image data と教えてくれる。

でもこの環境には入っていない。中身から種類を当てるには 10MB ほどの判定表が必要で、ブラウザに送る大きさに収まらないんだ。

だからここでは stat(素性)と od(バイト)で確かめる。卒業して自分のパソコンで打つときは、file も使えることを覚えておいてね。

08 / 08

さあ、打ってみよう

時刻と Inode の番号は打つたびに変わるので、答え合わせには使わないよ。

見るのは決まっている値——大きさ・種類・権限・リンク数だけ。安心して打ってみてね。