Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

シェルスクリプト&PowerShellAdvent Calendar 2024

Day 3

ls コマンドは list segments の略 ではないという話

Last updated at Posted at 2024-12-02

はじめに

ls コマンドは、本当は listlist directory contents の略です。list segments の略という説は、現在その根拠が削除されています。

ls コマンドとは?

ls(エルエス)

ls コマンドは Unix 系オペレーティングシステムで使用されるコマンドであり、ファイルやディレクトリの一覧を表示するための基本的な機能を提供する。名称の由来は「list(列挙する)」または「list directory contents(ディレクトリコンテンツを列挙する)」とされている。

ls コマンドは 1970 年代に登場した初期の Unix システムにおいて導入され、現在では Linux、macOS、BSD など多くの Unix 互換システムで利用可能である。利用者はコマンドラインインターフェイス(CLI)上で ls を入力することで、指定したディレクトリ内の内容を確認できる。オプション(例: -l, -a)を組み合わせることで、詳細な情報表示や隠しファイルの表示など柔軟な操作が可能となる。

なぜ list segments の略という誤解が広まったのか?

Wikipedia に書かれていた真偽不明の情報が発信源です。この情報は 2005 年の 3 月に英語版の Wikipedia に参照リンクなしで追加され、根拠がないことから 2013 年 8 月に削除されています。日本語版の Wikipedia では今も list segments の略であるという説明が残っています。

"list segments" が Wikipedia に追加されたときのコメントには、Multics で使われていた用語であると書かれています。しかし削除されたときのコメントには、Multics では ls を list segments の略として使っておらず、Multics の開発者もそう言っていないとして、2003 年 7 月のある会話へのリンクが紹介されています。

そもそも segments とはなに?

英語の意味の「区画」ではありません。Multics 用語なので私は完全に理解していませんが、Multicsシステムでは、プログラムやデータを「セグメント」と呼ばれる単位に分割して管理しており、ファイルもまた「セグメント」の1つとして管理していたようです。つまり Unix で「すべてがファイル」と言われるように、Multics は「すべて(?)がセグメント」だった、ということのようです。

list segments 削除に至るまでの流れ

Wikipedia から list segments が削除されることとなるきっかけは 2007 年の会話です。出典なしの情報であり「疑わしい」レベルでしたが、最終的な結論が出る前に削除されたようです。

2014年に提示された証拠

Wikipedia から削除されたおよそ 1 年後の 2014年の 10 月に、あるユーザーから証拠として Multics の list コマンドの機能が提示されました。

そこには ls コマンドの説明として list と書かれており、ls コマンドの機能として「エントリータイプの引数を指定することでセグメントを出力できる」と書かれています。つまり ls コマンドはディレクトリに含まれるさまざまなエントリを list するためのコマンドで、segments はその中の1つでしかないということです。ls コマンドが segments 専用ではないというのであれば、ls が list segments の略というのはおかしな話です。これは十分な説得力があると私は感じます。

Syntax as a command:  ls {entrynames} {-control_args}

Function: prints information about the entries in a single directory.
There are five entry types supported by list: segments, multisegment
files (MSFs), data management (DM) files, directories, and links.
Segments, DM files, and MSFs are referred to collectively as files;
segments, MSFs, DM files, and directories are referred to collectively
as branches.

Control arguments (entry type):
-segment, -sm
   list segments.
-multisegment_file, -msf
   list multisegment files.
-data_management_file, -dmf
   lists data management files.
-file, -f
   list information about files (i.e., segments, MSFs, and DM files).
   (Default)
-directory, -dr
   list directories.
-branch, -br
   list information about branches (i.e., segments, MSFs, DM files, and
   directories).
-link, -lk
   list links.
-all, -a
   list information about all entry types in the following order:
   segments, MSFs, DM files, directories, and links.

さいごに

Wikipedia の情報を鵜呑みにするのはやめましょう。特に日本語の内容は古く英語版で訂正された内容が今も残っていることが多々あります。Wikipedia は上手く使いこなせれば、信頼できるソースを見つけることができる有益な情報ですが、正しく使わなっければ役に立ちません。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?