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

答え2

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

ls -dもはやディレクトリを探していません。ls引数を使用しないことは同じなので、出力のみがls .表示されます。.使用方法の例は次のとおりです。

$ mkdir -p {foo,bar,baz}/dir
$ ls *
bar:
dir

baz:
dir

foo:
dir
$ ls -d *
bar  baz  foo

いくつかのディレクトリメタデータを見るにはls -ld

答え3

あなたは非常にさまざまな問題。しかし、混乱に対する短い答えは次のとおりです。ディスカッションfor  ls(指定されていない場合)は .lsオプションなしで実行すると、次の結果が表示されます。コンテンツ.  走れば得るls -dことができる.

関連情報