问题描述
当我跑:
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
第二列(数字)是什么意思?
最佳解决方案
第二列是文件的硬链接数。对于目录,硬链接的数量是它具有的直接子目录的数量加上其父目录和自身。
$ 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
次佳解决方案
karthick@Ubuntu-desktop:~$ ls -n
drwxr-xr-x 2 1000 1000 4096 2010-12-02 15:56 Books
第一栏:drwxr-xr-x
-
它显示文件权限。
第二栏:2
-
它显示该文件/目录的硬链接计数。
第三和第四栏:1000
1000
-
它显示了用户的UID和GID。
第五栏:4096
-
它显示了大小。
第六栏:2010-12-02 15:56
-
它显示上次修改的日期和时间。
第七栏:Books
-
它显示文件/目录的名称。
注意:
有关更多信息,请查看此link。
第三种解决方案
关于目录的答案将给出正确的数字,但出于错误的原因。该数字不是子目录的数量加上”.”和”..”
该数字实际上与文件相同:指向目录的硬链接数。例如,让我们创建一个新目录:
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$
您可以看到链接数为2.这些链接是名称”temp”和temp中的”.”目录(又名”temp/.”)而不是”..”目录。这是指向”temp”父级的链接。哪种解释为什么创建sub-directory会创建新链接。我们开始做吧:
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$
现在有3个指向该目录的链接。它们是”temp”,”temp/.”和”subtemp/..”(即”subtemp”中的”..”目录)。这就是子目录添加链接的原因 – 因为它们都有一个引用父代的”..”目录。