'ls -n' 输出中的第二列是什么意思?

Nat*_*man 35 command-line ls

当我运行时:

ls -n

我得到类似的东西:

-rwxrwxrwx 1 1000 1000 765528 2009-10-15 18:41 file1
drwxr-xr-x 10 1000 1000 4096 2010-12-07 20:50 dir1
drwxr-xr-x 3 1000 1000 4096 2010-10-24 16:57 dir2

第二列(数字)是什么意思?

Bri*_*les 48

第二列是文件的硬链接数。对于一个目录,硬链接的数量是它拥有的直接子目录的数量加上它的父目录和它本身。

$ ls -n
total 0
$ touch f1
$ touch f2
$ ln f1 hardlink
$ ln -s f2 softlink
$ mkdir d1
$ mkdir d2
$ mkdir d2/a d2/b d2/c
$ ls -n
total 8
drwxr-xr-x 2 1000 1000 4096 2010-12-31 00:07 d1
drwxr-xr-x 5 1000 1000 4096 2010-12-31 00:07 d2
-rw-r--r-- 2 1000 1000    0 2010-12-31 00:06 f1
-rw-r--r-- 1 1000 1000    0 2010-12-31 00:06 f2
-rw-r--r-- 2 1000 1000    0 2010-12-31 00:06 hardlink
lrwxrwxrwx 1 1000 1000    2 2010-12-31 00:07 softlink -> f2
Run Code Online (Sandbox Code Playgroud)

Linux 公报第 35 期

Linux 公报第 93 期

  • 2 个 Linux Gazette 链接不再存在! (2认同)

kar*_*k87 20

karthick@Ubuntu-desktop:~$ ls -n
drwxr-xr-x  2 1000 1000  4096 2010-12-02 15:56 Books
Run Code Online (Sandbox Code Playgroud)

第一列: drwxr-xr-x

  • 它显示文件权限。

第二列: 2

  • 它显示该文件/目录的硬链接计数。

第三第四栏: 1000 1000

  • 它显示用户的UIDGID

第五栏: 4096

  • 它显示大小。

第六栏: 2010-12-02 15:56

  • 它显示上次修改的日期和时间。

第七栏: Books

  • 它显示文件/目录的名称。

笔记:

有关更多信息,请查看此链接


小智 7

给出的关于目录的答案将给出正确的数字,但出于错误的原因。该数字不是子目录的计数加上“。” 和 ”..”

该数字实际上与文件相同:指向目录的硬链接数。例如,让我们创建一个新目录:

someuser@mymachine:~/test$ mkdir temp
someuser@mymachine:~/test$ ls -al
total 24
drwxrwxr-x  3 someuser someuser  4096 2012-02-27 15:58 .
drwx------ 50 someuser someuser 16384 2012-02-27 15:52 ..
drwxrwxr-x  2 someuser someuser  4096 2012-02-27 15:58 temp
someuser@mymachine:~/test$
Run Code Online (Sandbox Code Playgroud)

您可以看到链接数为 2。这些链接是名称“temp”和“.”。temp 中的目录(又名“temp/.”)不是“..”目录。那是指向“temp”的父级的链接。哪种解释了为什么创建子目录会创建新链接。我们开始做吧:

someuser@mymachine:~/test$ cd temp
someuser@mymachine:~/test/temp$ mkdir subtemp
someuser@mymachine:~/test/temp$ ls -al
total 12
drwxrwxr-x 3 someuser someuser 4096 2012-02-27 16:03 .
drwxrwxr-x 3 someuser someuser 4096 2012-02-27 15:58 ..
drwxrwxr-x 2 someuser someuser 4096 2012-02-27 16:03 subtemp
someuser@mymachine:~/test/temp$
Run Code Online (Sandbox Code Playgroud)

现在有 3 个指向该目录的链接。它们是“temp”、“temp/”。和“subtemp/..”(即“subtemp”中的“..”目录)。所以这就是子目录添加链接的原因 - 因为它们都有一个“..”目录指向父目录。