`ls -d`コマンドが`.`ディレクトリだけを印刷するのはなぜですか?

`ls -d`コマンドが`.`ディレクトリだけを印刷するのはなぜですか?

私は試して、man lsその後得た。

-d, --directory

コンテンツの代わりにディレクトリエントリを一覧表示し、シンボリックリンクを逆参照しません。

マニュアルに示すよう-dに、すべてのディレクトリを一覧表示することを意味します。入力すると、次のメッセージが表示さls -d れます。

drwxr-xr-x 35 *user group* 4.0K *date* 00:16 .

答え1

lsデフォルトでは、現在のディレクトリが参照されるためです。結局、これが最も一般的なユースケースです。現在のディレクトリにファイルを一覧表示します。

「-d」フラグは、「ディレクトリ内のファイルを一覧表示せずにディレクトリ自体のみを一覧表示する」を意味します。

答え2

現在のディレクトリの(非表示)ディレクトリのみを一覧表示するには、find次のようにしてみてください。

find . -maxdepth 1 -type d -not -name "\.*"

どこ:

  • -type dディレクトリに集中してください(私の考えではこれがあなたに必要だと思います)
  • -name "\.*"隠しファイルの検索(\エスケープ.文字用)
  • -not隠しファイルの検索をキャンセルして、非表示のファイルを検索します。
  • -maxdepth 1より多くのサブディレクトリを入力しないでください。

関連情報