ファイルハードリンク数の変更

ファイルハードリンク数の変更

私のLinuxコンピュータには次のファイルがあります。

   drwxr-xr-x 2 jsgdr     Unix_31  4096 Dec  2 17:46 jsgdr 

これを行うために権限2を4に変更するにはどうすればよいですか?

   drwxr-xr-x 4 jsgdr     Unix_31  4096 Dec  2 17:46 jsgdr 

答え1

数字で権限を意味するわけではありません。

mkdir demo
cd demo
ls -ld
drwxr-xr-x 2 root root 4096 Dec  2 10:21 .

したがって、ここで数字2は次のことを意味します。

  • 親ディレクトリにあるディレクトリエントリ。
  • ディレクトリ自体のエントリです。

しかし、4を見るには、次のように見えます。

mkdir sub_demo{1,2}
ls -ld
drwxr-xr-x 4 root root 4096 Dec  2 10:23 .

ご覧のとおり、2つのサブディレクトリを作成したため、数字4が表示されます。 4は次のことを示します。

  • 親ディレクトリにあるディレクトリエントリ。
  • ディレクトリ自体のエントリです。
  • ..ディレクトリ内の2つのサブディレクトリにあるエントリ。

私の他の答えで詳細な説明を見つけることができます。ここ

答え2

権限では2ありませんが、4ファイルへのハードリンクの数です。 ~からGNUドキュメント(POSIX仕様ではlsこれを指定しますが、この表現はより明確です。IMHO):

‘-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 (see 
Formatting file timestamps), normally the modification time. Print question 
marks for information that cannot be determined.

たとえば、

$ touch a
$ ls -l
total 0
-rw-r--r-- 1 root root 0 Dec  2 21:48 a
$ ln a b
$ ls -l
total 0
-rw-r--r-- 2 root root 0 Dec  2 21:48 a
-rw-r--r-- 2 root root 0 Dec  2 21:48 b
$ ln a c
$ ls -l
total 0
-rw-r--r-- 3 root root 0 Dec  2 21:48 a
-rw-r--r-- 3 root root 0 Dec  2 21:48 b
-rw-r--r-- 3 root root 0 Dec  2 21:48 c

ディレクトリの場合、ハードリンクの数はサブディレクトリの数に関連しています。バラより何か追加する前に、新しいディレクトリのハードリンク数が2であるのはなぜですか?より多くの情報を知りたいです。

関連情報