ls -lの出力に関するドキュメントはどこで見つけることができますか?

ls -lの出力に関するドキュメントはどこで見つけることができますか?

この点に関して多くの質問があります。ls出力についてls -laの列は何ですか?"ls -la"は何をしますか?ls -al 出力のフィールドはどういう意味ですか?など。
私はまたそれを説明したい記事がある他の多くのウェブサイトに触れました。

それぞれの共通点は、列の意味が少ないにもかかわらず、もともとその情報を取得した場所へのリンク/参照がまったくないことです。 3番目の質問に対する答えは次のとおりです。coreutils マニュアルしかし、まだ指示を提供していないマンページに非常に似ています。

上記のリソースはドライバを開発しており、ls -lブロック/文字デバイスのメイン番号とマイナー番号が提供されていることがわかったため、不完全です(これはファイルやディレクトリの通常の出力とは異なります)。
ここに画像の説明を入力してください。
ここで、デバイスのメジャー/マイナー番号はそれぞれ1と3です。
誰かが記事で言及したので、これを知りました。回答(無関係な質問)。以前にこの数字が何を意味しているのか疑問に思っていた場合は、偶然見つからないと答えが見つかりませんでした。またはソースコードを確認してください。

ほとんどすべてのLinuxユーザーが使用するツールの場合、出力に関する正しい情報がないことが奇妙です。それでは、私が何かを見逃しているのでしょうか?どこに記録されていますか?

編集:Muruはコメントで別の質問に言及しました。ls -lでフィールドの意味を見つける方法- この質問に提案された回答は主にマンページに言及し(直接貼り付け)、GNU coreutilsの場合は完全な回答を提供しません(マンページはメイン/マイナーデバイス番号を参照しません)。 BSDのマニュアルページにはこのように記載されていますが、posix標準に対するStephenの答えは(私の考えでは)最も正確です。

答え1

lsはいPOSIXで指定、これは共通参照です。出力フォーマットは「STDOUT」セクションで説明されています。

答え2

はい、ファクトサイズフィールドはmajor, minorデバイスファイルに置き換えられました。少なくともそれ以降はそうです。研究UNIX v51974年で、少なくともそれ以降に文書化されました。Unix v6を勉強する(v5 のマニュアルページが見つかりません) GNU 実装文書に文書化されていませんls(今は修正されました。次のようなこのバグレポート、ありがとう)。

これlsユーティリティのPOSIX仕様lsGNUを含むほとんどの実装lsサイズ一部に置き換えられました<device-info>問題のデバイスに関する実装定義情報、GNUの場合、元のlsUnix実装と同様それはいつもmajor, minor。ただし、元の Unix 実装とは異なり、GNU は、ls主装置番号と副装置番号の間にカンマ以外に常に少なくとも 1 つの空白があることを保証します。


少なくとも1つPOSIX環境これはPOSIXLY_CORRECT環境変数を設定するのと同じですがBLOCKSIZE、、、、BLOCK_SIZE何も設定しませんLS_BLOCK_SIZE。ただし、この場合には、その変数のどれも関連がありません。

² これは、BusyboxやToyboxの実装など、他の多くの実装にも当てはまります。lsこれはLinuxベースのシステム(およびそれ自体)でも一般的です。いいえPOSIX互換)ですが、すべてではありません。たとえば、ast-open の項目には空白が含まれず、すべての数字が長さ 3 までゼロで埋められますが(たとえば001,005)、一部はまだ長さ 3 まで空白で埋められ、スペースで区切られたフィールドの数が可変に生成されます( for1, 5と同じように)。7,128ケース)。ls -l出力を安定的または移植可能に解析できないいくつかの理由の1つ。

関連情報