ls -ldを使用してLinuxでディレクトリを表示すると、次の結果が表示されます。
user@shell:~/somedirectory$ ls -ld
drwxr-xr-x 2014 K-rock users 65536 20011-11-05 11:34
user@shell:~/somedirectory$
somedirectory
上記の結果を使用して、サブディレクトリとファイル数をどのように見つけることができますか?私が理解したところによると、リンクの数はサブディレクトリの数に対応しますが、ファイルの数はどうですか?ls -ld
この数字を見つけるために結果をどのように読むべきですか?
また、上記の結果を使用して、特定のディレクトリのファイルとサブディレクトリの数を知らせる必要があります。残念ながら、他のコードは実際には使用できません。
ベストアンサー1
得られた出力でパスワードを復号しようとするので、作業を簡素化しようとします。
ls -ld
drwxr-xr-x 4 root root 4096 Nov 11 14:29 .
これで、ls -ld
上記の出力がディレクトリに提供されます。今集中する必要があるのは数字4です。 4は以下に対応します。
- 親ディレクトリにあるディレクトリエントリ。
- ディレクトリ自体エントリ
.
。 ..
ディレクトリ内の2つのサブディレクトリにあるエントリ。
これを確認するために、次のコマンドを実行すると、ls
より多くのディレクトリがあることがわかります。したがって、これはあなたのケースの結果から何を解釈できるかについてのアイデアを提供します。
drwxr-xr-x 2014 K-rock users 65536 20011-11-05 11:34
内部には2012のサブディレクトリがあるため、出力に2014が表示されます。
ファイル数は出力にありません。
私の理論が正しいかどうかをテストするために、次のテストを実行しました。
ls -la | grep -E '[d]' #Display only directories
drwxr-xr-x 12 root root 4096 Nov 11 14:42 .
drwxr-xr-x 4 root root 4096 Nov 11 14:20 ..
drwxr-xr-x 3 root root 4096 Nov 11 14:45 hello1
drwxr-xr-x 2 root root 4096 Nov 11 14:42 hello2
drwxr-xr-x 2 root root 4096 Nov 11 14:42 hello3
drwxr-xr-x 2 root root 4096 Nov 11 14:42 hello4
drwxr-xr-x 2 root root 4096 Nov 11 14:42 hello5
drwxr-xr-x 2 root root 4096 Nov 11 14:42 hello6
drwxr-xr-x 2 root root 4096 Nov 11 14:42 hello7
drwxr-xr-x 2 root root 4096 Nov 11 14:42 hello8
drwxr-xr-x 2 root root 4096 Nov 11 14:21 hello-subdir
drwxr-xr-x 2 root root 4096 Nov 11 14:29 spaced hello
これでls -ld
コマンドを実行すると、次のような結果が得られます。
ls -ld
drwxr-xr-x 12 root root 4096 Nov 11 14:42 .
フォルダサブディレクトリ内のネストされたファイルまたはサブディレクトリは考慮されません。デフォルトでは、上記のコマンドは私のフォルダに10のディレクトリがあることを意味します。
PS:出力から何かを解析するのは一般的にls
信頼できないので、悪い考えです。使用する機会がある場合は、find
代わりにwithを使用してください。-maxdepth