ls -lで見れること

シェル / Shell
Cashback Campaign  
“Google will bring you back 100,000 answers. A librarian will bring you back the right one.”.”
— Neil Gaiman
Googleは10万件の答えを返してくれるけれど、図書館員は正しい答えを返してくれる。
— ニール・ゲイマン
ねえミミ、ls -lでカレントディレクトリの中の詳細が見れるのは分かったけど、出てきた詳細の見方がわからない…
Hey Mimi, I know that ls -l shows the details of the current directory, but I don’t know how to read the details…
Terminal
$ ls -l
total 0
drwx‑‑‑‑‑‑+  3 kiki  staff   96 Sep 23 20:41 Desktop
drwx‑‑‑‑‑‑+  3 kiki  staff   96 Sep 23 20:41 Documents
drwx‑‑‑‑‑‑+  3 kiki  staff   96 Sep 23 20:41 Downloads
drwx‑‑‑‑‑‑+ 26 kiki  staff  832 Sep 23 20:41 Library
drwx‑‑‑‑‑‑   3 kiki  staff   96 Sep 23 20:41 Movies
drwx‑‑‑‑‑‑+  3 kiki  staff   96 Sep 23 20:41 Music
drwx‑‑‑‑‑‑+  3 kiki  staff   96 Sep 23 20:41 Pictures
drwxr‑xr‑x+  4 kiki  staff  128 Sep 23 20:41 Public
じゃあ、いちばん下のファイルのPublicを例に説明するね
Let me explain using the file Public as an example from the last line.

1. ファイルタイプ File Type

Terminal
drwxr-xr-x+  4 kiki  staff  128 Sep 23 20:41 Public
まずはいちばん左のピンクのd。これはカレントディレクトリの中にあるPublicが、ディレクトリであるということを示してるの
First, the pink d indicates that Public is a directory in the current directory.
dは「Directory」の「d」か
So, the d is for Directory?
その通り、ちなみにディレクトリじゃなくて、ファイルだったら、最初の文字はdの代わりにになるわ
Exactly. If it’s a regular file, the first character would be a instead of d.
Terminal
-rwxr-xr-   1 kiki  staff  1234 Sep 23 20:41 sample.txt
最初の1文字を見れば、それがディレクトリだかファイルだかわかるんだね!
So, the first character tells you whether it’s a directory or a file!
そうよ。厳密にいうと、最初の1文字は、ファイルタイプを表してて、ファイルタイプっていっぱいあるの
Exactly. The first character indicates the file type, and there are many file types.

各部分の説明:
Explanation of Each Part:

  • d: ディレクトリ
    d: Indicates that it is a directory
  • : 通常のファイル (regular file)
    -: Indicates a regular file
  • l: シンボリックリンク (symbolic link)
    l: Indicates a symbolic link
  • c: キャラクターデバイス (character device)
    c: Indicates a character device
  • b: ブロックデバイス (block device)
    b: Indicates a block device
  • p: 名前付きパイプ (named pipe)
    p: Indicates a named pipe
  • s: ソケット (socket)
    s: Indicates a socket
ぎゃっ
Wow, that’s a lot!
まあ、いまは ディレクトリとファイルの違いだけわかってればいいいわ
For now, just knowing the difference between directories and regular files is enough.
ディレクトリはファイルタイプのひとつなの?
So, a directory is just one type of file?
その通り、ディレクトリもファイルタイプの一種よ。自分の中にほかのファイルを格納できる特別なファイルとみなされてるの。まあ普通は、ディレクトリとファイルというふうに呼び分けられてるわ
Exactly. A directory is a special type of file that can contain other files. But generally, we just refer to them as directories and regular files.

2. パーミッション(アクセス権限) Permissions (Access Rights)

左から2文字目から10文字目のアルファベットは、パーミッションやアクセス権限について表してるわ
The characters from the 2nd to the 10th position represent the file’s permissions or access rights.
パーミッション?アクセス権限?
Permissions? Access rights?
ファイルを開くひとがそのファイルに対して何ができるかということ。例えば、右から2文字目からのレッドのrwxの3文字は、「読み取り (read)」「書き込み (write)」「実行 (execute)」の権限を示しているの
They show what actions the user can perform on the file. For example, the red rwx shows the owner’s permissions: read, write, and execute.
ファイルを読み取りしたり、ファイルに書き込みしたり、ファイルを実行したりできるかどうかということ?
So, it shows whether the file can be read, written to, or executed?
その通り!左から見ていくと、赤字3文字はファイルの所有者の権限、緑の3文字はグループの権限、黄色の3文字はユーザーの権限を表してるのよ
Exactly! The red three letters are the owner’s permissions, the green ones show the group’s permissions, and the yellow ones indicate the user’s permissions.
Terminal
rwx 所有者は、読み取り・書き込み・実行ができる
r-x グループは、読み取りはできるが、書き込みはできず、実行はできる
r-x ユーザーは、読み取りはできるが、書き込みはできず、実行はできる
r-xは、wがないから、書き込みができないってことか
So r-x means you can’t write because there’s no w, right?
そう!簡単でしょ?
Exactly! Simple, right?
そうかも
Maybe

3. 拡張アクセス制御リスト (ACL) Access Control List (ACL)

左から11文字目の+はなに?
What’s the + in the 11th position?
+は、ファイルやディレクトリに拡張アクセス制御リスト (ACL) が設定されていることを意味するの
The + indicates that an extended Access Control List (ACL) is set on the file or directory.
かくちょうあくせすせいぎょりすと?
Access Control List?
通常のパーミッションに加えて、特定のユーザーやグループに個別の権限を設定できるのよ
It lets you assign specific permissions to individual users or groups, in addition to the usual file permissions.
より柔軟にパーミッションを設定できるんだね
So you can set permissions more flexibly?

4. ディレクトリやファイルのリンク数 Link Count of Directories and Files

次の数字は?
What about the next number?
Terminal
drwxr-xr-x+  4 kiki  staff  128 Sep 23 20:41 Public
「4」は、そのディレクトリやファイルがどれだけの場所から「参照されているか」を示しているの。簡単に言えば、いくつの場所からアクセスできるかってことね。でも、今はあまり気にしなくて大丈夫よ
The “4” shows how many places can access the directory or file. Simply put, it tells you how many places can refer to it. But for now, you don’t need to worry too much about it.
ふうん
Hmm. I see.

5. 所有者とグループ Owner and Group

じゃあ次のkikistaffってどういうこと?
So, what do “kiki” and “staff” mean?
kikiは所有者を示していて、つまりキキちゃんはこのディレクトリの所有者よ
kiki” shows the owner, meaning you, Kiki, are the owner of this directory.
キキちゃん、所有者…
Kiki-chan is the owner…
そうよ。で、その次にあるstaffは「グループ」を示していて、グループのメンバーもこのディレクトリにアクセスできるのよ
Exactly. And next to that, “staff” shows the group, meaning group members can also access this directory.
じゃあ、キキちゃん以外にも、このディレクトリにアクセスできる人がいるんだね?
So, are there other people who can access it besides me?
そういうこと!グループメンバーも、与えられた権限の範囲内でアクセスできるのよ。staffは、Macのデフォルトのグループ名なの。ちなみにキキちゃんも、このstaffグループのメンバーになってるわ
Exactly! Group members can access it within the permissions they’re given. “staff” is the default group name in Mac, and by the way, you’re also a member of this “staff” group.
なんで分かるの…?
How do you know…?
groupsってコマンド打ったら、staffって出てくるでしょ?キキちゃんの入ってくるグループを表示するコマンドなの
When you type the command groups, you’ll see “staff” come up, right? It shows which groups you’re part of.
ほんとだ
True.

6. ファイルサイズ File Size

「128」はファイルサイズを表していて、このPublicというファイルが128バイトのデータを持っていることを表してるわ
“128” represents the file size, indicating that the file named Public contains 128 bytes of data.
じゃあ、「128バイト」ってどういうこと? So, what does “128 bytes” mean?
1バイトはデータの小さな単位で、ファイルサイズはそのデータがどれくらいあるかを数えるものなのよ
A byte is a small unit of data, and the file size tells us how much data is in the file.
へぇ、そんな風にデータを数える単位があるんだね
Oh, so there’s a way to measure how much data is inside a file.
細かいことは、また今度説明するから安心して。今は全体の流れだけ理解できれば大丈夫よ
Don’t worry, I’ll explain the details next time. For now, just focus on understanding the overall structure.

7. タイムスタンプ Time Stamp

次に出てくる「Sep 23 20:41」って何?
What does “Sep 23 20:41” mean?
これはファイルやディレクトリが最後に変更された日時を示しているのよ。たとえば、「Sep 23 20:41」は、9月23日の午後8時41分にそのファイルが最後に編集されたってことなの
This shows the last time the file or directory was modified. For example, “Sep 23 20:41” means the file was last edited on September 23 at 8:41 PM.
ああ、つまりそのファイルに何かが変更された時間が表示されているんだね
Oh, so it’s showing the time when something in the file was changed.
そうそう。例えば、ファイルに新しいデータを書き込んだり、名前を変更したときに、ここが更新されるのよ。タイムスタンプっていうの
Exactly! When you write new data to the file or change its name, this time gets updated.
タイムスタンプか!じゃあ、ファイルに何か変更があったときに更新されるんだね
A timestamp! So, it gets updated when something in the file changes?
その通り!他にも、ファイルが読み取られた時間(アクセス日時)や、作成された時間(作成日時)もあるけど、ls -lでは変更日時が表示されるのよ
Exactly! There are also times for when the file was accessed or created, but with ls -l, you see the modification time.

まとめ / Summary

  • ls -l コマンドを使うと、ディレクトリ内のファイルやフォルダの詳細情報が確認できます。これには次の情報が含まれます:
    Using the ls -l command, you can check the detailed information of files and directories in a directory. This includes the following:
  • ファイルタイプ: 先頭の文字がファイルの種類を示します。d はディレクトリ、 は通常のファイルです。
    File Type: The first character indicates the type of file. d means a directory, and means a regular file.
  • アクセス権限: 誰がファイルを読み取り(r)、書き込み(w)、実行(x)できるかを表しています。所有者、グループ、その他のユーザーに分けて表示されます。
    Permissions: This shows who can read (r), write (w), or execute (x) the file. It’s displayed for the owner, group, and other users.
  • リンク数: ファイルやディレクトリが参照されている回数を示します。ディレクトリの場合、中にあるサブディレクトリやファイルの数も表します。
    Link Count: This shows how many times the file or directory is referenced. For directories, it also indicates the number of subdirectories or files inside it.
  • 所有者とグループ: どのユーザーが所有しているか(所有者)と、どのグループがアクセスできるかを示します。
    Owner and Group: It shows which user owns the file (owner) and which group can access it.
  • ファイルサイズ: ファイルが持っているデータの大きさをバイト単位で表示します。
    File Size: The size of the file is displayed in bytes.
  • タイムスタンプ: ファイルが最後に変更された日時を表示します。
    Timestamp: This shows the last date and time the file was modified.