`ls --directory`は何を表していますか?


16

私のUbuntuバージョンでは、man lsに--directoryに関する次の情報があります。

list directory entries instead of contents, and do not dereference symbolic links

だから、私はそれがどのように機能するか少し混乱しています。私はコマンドを使用し、ls --directoryすべてのディレクトリのリストを期待していましたが、代わりに.

だから、正確に何をんls --directoryls -dいますか?

回答:


24
$ man ls
...
-d, --directory
              list directories themselves, not their contents

現在のディレクトリは、リストされ.ているものとして表されls -dます。

現在のディレクトリ内のディレクトリはディレクトリの内容であるため、このオプションでは表示されません。

-dエイリアスでオプションを使用して、非表示のファイルとディレクトリを表示します

alias l.='ls -dC .* --color'

がなければ-d、これは隠しディレクトリの内容もリストしますが、これは私が望んでいるものではありません。

別の用途-lは、コンテンツではなくオプションを使用してディレクトリのメタデータを表示する場合です。

$ ls -ld playground
drwxr-xr-x 72 zanna zanna 12288 Mar  1 23:10 playground

現在のディレクトリ内のディレクトリのリストが必要な場合は、使用できます

ls -d */

ls -dC .* --colorまた、ディレクトリだけでなく隠しファイルもリストします。
ポーチョロ

1
はい@PauChorro私は実際に私の答えでそれを言います。私はそれがすべての隠されたファイルとディレクトリを表示するために使用
Zanna

1
@PauChorro私は、ディレクトリリストへの道を追加
Zanna

1
私のUbuntuバージョンでman lsは、次の情報がありますlist directory entries instead of contents, and do not derefer‐ ence symbolic links。だからあなたのバージョンでは、それが本当に何をするのかについてのより良い説明があります。
ポーチョロ

1
@ Pilot6ファイルも一覧表示されます
Zanna

11

lswithのみを使用して-dもほとんど役に立ちません。ディレクトリ自体に関する情報を提供します。内容はリストしません。

そのため、ディレクトリのリストが表示されません。予想されるディレクトリは、現在のディレクトリの「コンテンツ」です

単に実行するとls -d、現在のディレクトリが表示され.ます。

のような他のキーで実行するのが理にかなっている場合-l

ls -ld 現在のディレクトリの権限が表示されます。

pilot6@Pilot6:~$ ls -ld
drwxrwxr-x 1 pilot6 pilot6 2570 Mar  4 12:14 .

次のような他のディレクトリの権限も確認できます

ls -ld /bin

pilot6@Pilot6:~$ ls -ld /bin
drwxr-xr-x 1 root root 2584 Feb 25 15:19 /bin

実行ls -lせずに実行-dすると、現在のディレクトリにあるファイルとフォルダーのすべての権限のリストが表示されます。あなたがそれを必要としないなら、それはls -ld使用法の良い例です。

次の方法で現在のディレクトリをリストできます。

ls -d */

6

ls -dパラメータなしでは常に返されるため、単独で使用することはほとんど役に立ちません.。パラメータを指定した後、それは理にかなっています。たとえば、ユーザー名がrickあり、自宅のすべてのディレクトリを使用する場合は、次を使用します。

$ ls -d /home/rick/*/
/home/rick/AAC/        /home/rick/EnhanceIO/         /home/rick/silentcast/
/home/rick/assembly/   /home/rick/EnhanceIO-master/  /home/rick/Templates/
/home/rick/bin/        /home/rick/log/               /home/rick/test/
/home/rick/Desktop/    /home/rick/Music/             /home/rick/tmpe/
/home/rick/Documents/  /home/rick/Pictures/          /home/rick/Videos/
/home/rick/Downloads/  /home/rick/Public/

5

例で説明しましょう:

  1. ls:ディレクトリの内容を一覧表示する

  2. ls -dまたはls --directory:内容ではなくディレクトリ自体をリストします

例:

ls -d android-sdk-linux/

# result
android-sdk-linux/

ls android-sdk-linux/

# result
add-ons  build-tools  platforms  platform-tools  SDK Readme.txt  temp  tools

これのあなたのケースはls -dがそのコンテンツではないディレクトリを表示するだけであると言います(つまり.、Linux用語で)ので、結果は次のようになります.

しかし、次のように言っていた場合:ls、現在のディレクトリに存在するすべてが表示され.ます。


4

ls -dそれらのコンテンツの代わりに自己ディレクトリをリストします。ファイルは通常どおり表示されます。man lsすべてのオプションの説明を調べてください。

. 現在のディレクトリからコマンドを実行するときに使用するものと同じ、それ自体のディレクトリ、 ./runscript.sh

..cd ..ディレクトリ階層のステップアップで移動するように、現在のディレクトリの親である親ディレクトリです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.