はじめに
UNIX系のシステム(Macとか)でファイルやディレクトリを操作する際、ls -laコマンドを使ったことがある方は多いでしょう。しかし、表示される内容すべてを正確に理解しているでしょうか?この記事では、ls -laの出力を1行1列まで徹底解説します。
lsコマンドとは
lsコマンドは「list」の略で、指定したディレクトリ内のファイルやディレクトリを一覧表示します。特に-laオプションを組み合わせると、隠しファイルを含めた詳細情報が表示されます。
例:
$ ls -la
この出力を読み解くことで、ファイルシステムに対する理解を深め、効率的に操作できるようになります。
以下は典型的なls -laの出力例です。
drwxr-xr-x 5 user group 160 Nov 30 12:00 .
drwxr-xr-x 10 user group 320 Nov 30 11:59 ..
-rw-r--r-- 1 user group 123 Nov 29 14:23 file.txt
ここで、各列が何を意味するのかを順に見ていきます。
各列の意味とその詳細
ファイルタイプ
出力の先頭の1文字目はファイルタイプを表します。上記例だと上2行はディレクトリ、3行目はファイルであることがわかります。
記号 | 意味 |
---|---|
- | 通常のファイル |
d | ディレクトリ |
l | シンボリックリンク |
b | ブロックデバイス |
c | キャラクタデバイス |
p | 名前付きパイプ |
s | ソケット |
権限 (Permission)
次の9文字は、ファイルやディレクトリの権限を示します。例: rwxr-xr-x
先にそれぞれの文字の意味を表にしておきます。
区分 | 意味 |
---|---|
r | 読み取り可 |
w | 書き込み可 |
x | 実行可 |
- | 権限なし |
これらは3文字ずつ3つのグループに分けれます
所有者(最初の3文字)
グループ(次の3文字)
その他のユーザー(最後の3文字)
例:
rwxr-xr-x → rwx / r-x / r-x
所有者(rwx): 読み取り、書き込み、実行可能
グループ(r-x): 読み取り、実行可能
その他のユーザー(r-x): 読み取り、実行可能
この例だと、読み取りと実行は全ユーザー可能ですが、書き込みは所有者のみ許可されていることになります
リンク数
次の数字(例: 5)は、そのファイルのハードリンク数を表します。
ディレクトリの場合、この数値は中に含まれるエントリの数(自身、親、子ディレクトリを含む)を指します。
オーナーとグループ
その次の文字user
とgroup
はオーナーと所属グループを示しています
オーナー: ファイルを作成したユーザー(例: user)
グループ: グループに属するユーザー(例: group)
ファイルサイズ
その次の数字はファイルサイズです。
サイズはバイト単位で表示されます(例: 160)。
ls -lh
オプションを使うと、人間に読みやすい形式(KB、MBなど)で表示されます。
タイムスタンプ
これは最終更新日時を示します。デフォルトでは、月、日、時刻の形式です。
ファイル名、ディレクトリ名
最後の列はファイル名、ディレクトリ名です。.で始まるファイルは「隠しファイル」と呼ばれます。ls -aを使うと表示されます。
おさらい
こちらの例の各行を改めて見てみます。
drwxr-xr-x 5 user group 160 Nov 30 12:00 .
drwxr-xr-x 10 user group 320 Nov 30 11:59 ..
-rw-r--r-- 1 user group 123 Nov 29 14:23 file.txt
行 | ファイルタイプ | 権限 | リンク数 | オーナー | 所属グループ | ファイルサイズ | タイムスタンプ | ファイル |
---|---|---|---|---|---|---|---|---|
1 | ディレクトリ | 読み取り、実行は全ユーザー許可。書き込みは所有者のみ許可。 | 5 | user | group | 160byte | 11/30 12:00 | . |
2 | ディレクトリ | 読み取り、実行は全ユーザー許可。書き込みは所有者のみ許可。 | 10 | user | group | 320byte | 11/30 11:59 | .. |
3 | ファイル | 読み取りは全ユーザー許可。書き込みは所有者のみ許可。実行は全ユーザー不可。 | 1 | user | group | 123byte | 11/29 14:23 | file.txt |
特殊なファイル (. と ..)
上記の例を見て何だこのファイル?ディレクトリ?思ったかもしれませんが下記の通りになります。
これらもファイルシステムの基本的な構造を辿る際に非常に重要です。
.
: 現在のディレクトリ
..
:親ディレクトリ
ファイルシステム内での変更
ディレクトリの権限を変更する
chmodコマンドを使って、ファイルやディレクトリの権限を変更できます。
755というのは所有者(最初の3文字)、グループ(次の3文字)、その他のユーザー(最後の3文字)の3つでそれぞれのグループの権限を表す数字になります。
よく使われる数字はこの辺です。覚えてもいいかもしれません。
rwx -> 7
、r-x -> 5
、r-- -> 4
chmod 755 my_directory
// my_directoryの権限をrwxr-xr-xに変更する
オーナーやグループを変更する
chownコマンドでオーナーやグループを変更します。
chown user:group file.txt
サイズ順に並べる
ls -laS
でサイズ順にファイルを並べ替えることができます。
まとめ
読んでいただきありがとうございます!
ファイルタイプでd
と-
以外中々お目にかかれないイメージがあるので、見かけたら少し興奮してみようかなと書いてて思いました😊