lsコマンドのdオプションは正確にどのように機能しますか? [コピー]

lsコマンドのdオプションは正確にどのように機能しますか? [コピー]

次の簡単な構造があります。

project
 main
  aaa
  aaa 
 test
  ddd
  ddd 
 pom.xml  <--- unique regular file

現在のディレクトリprojectが実行されると、lsコマンドが表示されます。

main  pom.xml  test

ここはすべてが正常です。これで、次のman lsオプションがd存在します。

   -d, --directory

          list directories themselves, not their contents

そのためls -d、実行時に次のコマンドが表示されます。

.

なぜ?正直なところ、私は通常のファイルではなくディレクトリだけを期待していました。例えば

main test

質問

  • dこのコマンドのオプションは正確にどのようにls機能しますか?

その他の質問:

  • 何ですか彼らの内容ではなくそれはまさにどういう意味ですか?各ディレクトリの内部内容についてですか?

ベストアンサー1

通常、ディレクトリを入力すると、そのlsディレクトリの内容が表示されます。

たとえば、あなたの例では次のようになります。

$ ls project
main  test
$ ls project/main
aaa  aab
$ ls project/test
dda  ddb

このフラグを使用すると、ディレクトリ-d自体が一覧表示されます。

$ ls -d project
project

ワイルドカードのようなものを見るまでは退屈に聞こえます。

$ ls project/*
project/main:
aaa  aab

project/test:
dda  ddb

すべてのディレクトリが一致することを確認し、そのディレクトリにあるファイルのリストを取得できます。

ただし、-dディレクトリ名自体しか取得できず、ディレクトリ内のファイルは取得できません。

$ ls -d project/*
project/main  project/test

おすすめ記事