更改文件硬链接计数

更改文件硬链接计数

在我的 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 .

正如您所看到的,我们看到数字 4 是因为我们创建了 2 个子目录。所以现在4代表,

  • 该目录在其父目录中的条目;
  • 目录自己的条目。
  • 目录内 2 个子目录中的 .. 条目。

你可以在我的另一个回答中找到详细的解释这里

答案2

2不是4权限,而是文件硬链接数量的计数。来自GNU 文档(POSIX 规范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 (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?了解更多信息。

相关内容