これは本当に基本的なことですが、ls のマニュアル ページでこの情報を見つけることができず、復習が必要です。
$ ls -ld my.dir
drwxr-xr-x 1 smith users 4096 Oct 29 2011 my.dir
drwxr-xr-x の後の数字 1 の意味は何ですか? ディレクトリ my.dir へのハードリンクの数を表していますか? 思い出せない。この情報はどこで確認できますか?
ありがとう、
ジョン・ゴーチ
これは本当に基本的なことですが、ls のマニュアル ページでこの情報を見つけることができず、復習が必要です。
$ ls -ld my.dir
drwxr-xr-x 1 smith users 4096 Oct 29 2011 my.dir
drwxr-xr-x の後の数字 1 の意味は何ですか? ディレクトリ my.dir へのハードリンクの数を表していますか? 思い出せない。この情報はどこで確認できますか?
ありがとう、
ジョン・ゴーチ
ウィキペディアで見つけました:
duuugggooo (hard link count) owner group size modification_date name
数字はハードリンク数です。
より UNIX 的なソリューションが必要な場合は、次のように入力しinfo ls
ます。これにより、次のようなより詳細な情報が得られます。
`-l'
`--format=long'
`--format=verbose'
In addition to the name of each file, print the file type, file
mode bits, number of hard links, owner name, group name, size, and
timestamp (*note Formatting file timestamps::), normally the
modification time. Print question marks for information that
cannot be determined.
これは、ファイルの名前付き (ハード リンク) の数です。そして、ここにエラーがあると思います。ディレクトリの場合、ここでは少なくとも 2 である必要があります。
$ touch file
$ ls -l
total 0
-rw-r--r-- 1 igor igor 0 Jul 15 10:24 file
$ ln file file-link
$ ls -l
total 0
-rw-r--r-- 2 igor igor 0 Jul 15 10:24 file
-rw-r--r-- 2 igor igor 0 Jul 15 10:24 file-link
$ mkdir a
$ ls -l
total 0
drwxr-xr-x 2 igor igor 40 Jul 15 10:24 a
-rw-r--r-- 2 igor igor 0 Jul 15 10:24 file
-rw-r--r-- 2 igor igor 0 Jul 15 10:24 file-link
ご覧のとおり、ディレクトリを作成するとすぐに、列に 2 が表示されます。
ディレクトリにサブディレクトリを作成すると、その数が増加します。
$ mkdir a/b
$ ls -ld a
drwxr-xr-x 3 igor igor 60 Jul 15 10:41 a
ご覧のとおり、ディレクトリには 3 つの名前 (「a」、「.」、そのサブディレクトリには「..」) があります。
$ ls -id a ; cd a; ls -id .; ls -id b/..
39754633 a
39754633 .
39754633 b/..
これら 3 つの名前はすべて同じディレクトリ ( inode 39754633
) を指しています。
ディレクトリの初期リンク カウント値が 2 である理由を説明しようとしています。Pl。これが役立つかどうかを確認してください。
すべてのファイル/ディレクトリは、inode によって識別されます。ハード リンクの数 = inode への参照の数。
ディレクトリ/ファイルが作成されると、1 つのディレクトリ エントリ (形式 - {myname, myinodenumber}) が親ディレクトリに作成されます。これにより、そのファイル/ディレクトリの i ノードの参照カウントが 1 になります。
これとは別にディレクトリが作成されると、ディレクトリ用のスペースも作成されます。これには、デフォルトで、作成されるディレクトリ用と親ディレクトリ用の 2 つのディレクトリ エントリ ({., myinodenumber} 形式の 2 つのエントリ) が必要です。および {.., myparent's sinodenumber}.
現在のディレクトリは「.」で参照されます。親は ".." で参照されます。
したがって、ディレクトリを作成すると、myinodenumber への参照が 2 つあるため、最初のリンク数の値 = 1+1=2 になります。また、親のリンク数の値が 1 増加します。