"ls"コマンドの出力レイアウトアルゴリズムは何ですか(列数と各列の項目をどのように選択しますか)?

"ls"コマンドの出力レイアウトアルゴリズムは何ですか(列数と各列の項目をどのように選択しますか)?

私のシステムの複数のディレクトリで "ls"コマンドを試しましたが、出力レイアウトがディレクトリ間で一致しません(もちろん読みやすくするためです)。ただし、予想通り、同じディレクトリの出力レイアウトは一貫しています。

各列の項目数と、データを分割する列数を選択する方法を理解したいと思います。 (ここには2つの変数があるので、理解するのは少し難しいです。)(ファイル名のサイズも変数の1つです。)

関連情報