`ls -d`に `.`だけが表示されるのはなぜですか?

`ls -d`に `.`だけが表示されるのはなぜですか?

私はディレクトリが欲しい

$ ls -d 
.
#get . on macos

セントースでも同様です。

[root@iz2ze9wve43n2nyuvmsfx5z ~]# ls -d .
.

解決策が見つかりました。

[root@iz2ze9wve43n2nyuvmsfx5z /]# ls -d */
bin/   dev/  home/  lib64/       media/  opt/   root/  sbin/  sys/  usr/
boot/  etc/  lib/   lost+found/  mnt/    proc/  run/   srv/   tmp/  var/

ただし、マニュアルには次のように記載されています。

   -d, --directory
          list directories themselves, not their contents

-dその理由は何ですか?

答え1

ls -d実行中の場所に含まれるディレクトリではなく、「この」ディレクトリに適用されますls

実行している場合は奇妙に思えるかもしれませんが、ls -dディレクトリを所有している人が誰であるかを知りたい場合は、ls -do現在のディレクトリの所有者だけを見てください。

回答に詳細な説明があります。ls -dがファイルを一覧表示するのはなぜですか、どこに記録されますか?

そして多くの素晴らしい洞察力ls *、ls**、およびls***の結果本当にもっと学びたいならls

答え2

このlsユーティリティは、コマンドラインで指定されたパス名引数を一覧表示します。いずれの引数にも該当する場合目次、ディレクトリの内容全体が表示されます。引数が指定されていない場合は、ls現在のディレクトリが使用されているかのように一覧表示されますls .

内容以外のディレクトリを一覧表示するには(ディレクトリのディレクトリエントリの表示)を-d選択しますls。これにより、ls -d dirディレクトリエントリを話してインポートできますが、コンテンツdirはインポートできません。

それ自体が1つのポイント(現在のディレクトリ)だけを返すのは、本質的に「コンテンツを表示せずに現在のディレクトリのディレクトリエントリを提供します」と同じですls -dls -d .


コマンドls -d */が実行する作業は、隠し名前を持たない現在のディレクトリ内のすべてのディレクトリのディレクトリエントリを表示することです。あなたはただ得る目次/パターンが終わったからです。を使用しているため、-dこれらのディレクトリの内容を取得できません。

関連情報