ls
マニュアルページで私はこれを見ました
-d, --directory
list directory entries instead of contents, and do not
dereference symbolic links
私の現在のフォルダから:
drwxr-xr-x 2 oracle oinstall 4.0K Jul 13 11:52 folderd
drwxr-xr-x 2 oracle oinstall 4.0K Jul 13 11:52 folderc
drwxr-xr-x 2 oracle oinstall 4.0K Jul 13 11:52 folderb
drwxr-xr-x 2 oracle oinstall 4.0K Jul 13 11:52 foldera
-rw-r--r-- 1 oracle oinstall 0 Jul 13 11:52 filed
-rw-r--r-- 1 oracle oinstall 0 Jul 13 11:52 filec
-rw-r--r-- 1 oracle oinstall 0 Jul 13 11:52 fileb
-rw-r--r-- 1 oracle oinstall 0 Jul 13 11:52 filea
q1)ls -ld
見せてください.
- なぜですか?
[oracle@centos1 script]$ ls -ld
drwxr-xr-x 6 oracle oinstall 4096 Jul 13 11:52 .
aを実行すると、ls -l *
フォルダ内のファイルを含むすべてが提供されます。
[oracle@centos1 script]$ ls -l *
-rw-r--r-- 1 oracle oinstall 0 Jul 13 11:52 filea
-rw-r--r-- 1 oracle oinstall 0 Jul 13 11:52 fileb
-rw-r--r-- 1 oracle oinstall 0 Jul 13 11:52 filec
-rw-r--r-- 1 oracle oinstall 0 Jul 13 11:52 filed
foldera:
total 0
-rw-r--r-- 1 oracle oinstall 0 Jul 13 11:57 fileafolda
-rw-r--r-- 1 oracle oinstall 0 Jul 13 11:55 fileainfolda
folderb:
total 0
folderc:
total 0
folderd:
total 0
これを実行すると、ls -ld */
フォルダのみが正しい結果を表示しました。
[oracle@centos1 script]$ ls -ld */
drwxr-xr-x 2 oracle oinstall 4096 Jul 13 11:57 foldera/
drwxr-xr-x 2 oracle oinstall 4096 Jul 13 11:52 folderb/
drwxr-xr-x 2 oracle oinstall 4096 Jul 13 11:52 folderc/
drwxr-xr-x 2 oracle oinstall 4096 Jul 13 11:52 folderd/
q3)ls
実際にパラメータとして許可されるものは何ですか? *
これはフォルダを含むすべてを意味します。*/
フォルダのみを表示します。-d
ここでフォルダの内容を削除してください。
それでは、ls -ld
結果がまったく表示されないのはなぜですか? q1には1つしかありません.
か?
つまり、これは次のことを意味しますか?
ls -l
==ls -l .
現在のディレクトリのすべての内容を一覧表示します。ls -l *
=現在のディレクトリのすべてのコンテンツを一覧表示する+サブディレクトリのコンテンツls -ld
==ls -ld .
現在のディレクトリを一覧表示しますが、内容は表示されません(したがって。)ls -l */
=現在のディレクトリのすべてのサブディレクトリ+その内容を一覧表示ls -ld */
=現在のディレクトリのすべてのサブディレクトリを一覧表示しますが、その内容は表示されません。
q1) ところで、次の内容が理解できません。
私がその中にいるとしましょう/script
。
ls -l *
→サブディレクトリの内容を含め、現在のディレクトリのすべての内容を一覧表示します。
ls -ld *
→サブディレクトリの内容を除いて、現在のディレクトリのすべてのコンテンツを一覧表示します。
これは、-d
現在のディレクトリの下のサブディレクトリに適用されます。
ただし、ls -ld .
→「-d」はサブディレクトリを意味するのではなく、実際には現在のディレクトリ自体を意味します。
-d
なぜそれがコンテンツではなく現在のディレクトリに影響を与えるのか理解できません。
答え1
q1) ls -ld を実行して以下を表示します。 - なぜですか?
引数を指定しない場合、デフォルトはディレクトリls
(またはディレクトリとも呼ばれる).
の内容を一覧表示することです。-d
それ自体、内容より。これにより、.
現在のディレクトリに関する情報を取得できます。
ls -ld * を実行すると、フォルダー内のファイルを含むすべてが提供されます。
いいえ、そうではありません。現在のディレクトリに一致するすべてのファイル(隠しファイルを除くすべてのファイル)を一覧表示しますがls -ld *
、*
いいえそのディレクトリの内容は-d
。いいえ使用-d
。
ls -ld */を実行すると、正しい結果が表示され、フォルダーのみが表示されます。
*/
一般的なファイルパス名は/
。
q3) 「ls」が実際に引数として受け入れるものは何ですか? *ここではフォルダを含むすべてを意味します。 */はフォルダのみを意味し、-dはここからフォルダの内容を削除します。
基本的にはすべて正しいです。拡張:*
隠しファイルを除くすべての項目と一致します。*/
同じですが、ディレクトリだけが一致し、-d
このオプションが意味するものは何でも正しいです。
それでは、ls -ldが結果をまったく表示しないのはなぜですか? q1には1つしかありません。
.
これは1つの結果を示しています。つまり、!という現在のディレクトリを表示します。