基础的Unix进修询问:LS -ld

问题描述:

我知道这是非常基本的,但我无法找到此信息 在LS手册页,并且需要复习:基础的Unix进修询问:LS -ld

$ ls -ld my.dir 
drwxr-xr-x 1 smith users  4096 Oct 29 2011 my.dir 

什么是数字的含义1在drwxr-xr-x之后? 它代表直接my.dir的硬连接数量吗? 我不记得了。我在哪里可以找到这些信息?

感谢,

约翰Goche的

+0

欢迎使用堆栈溢出!请学习如何接受答案......如果您不知道我在说什么[点击此处](http://meta.stackexchange.com/a/5235/170679) – Arjan 2012-07-15 08:40:26

我发现它Wikipedia

duuugggooo (hard link count) owner group size modification_date name

数量是硬链接数。

如果您想要更多的UNIXy解决方案,请键入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. 
+0

是的,但是对于目录呢?它是否总是设置为2,如果是,那么为什么? – 2012-07-15 08:37:41

这是文件的命名(硬链接)的数量。我想,这里有一个错误。对于一个目录,这里必须至少有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 

正如你所看到的目录现在已经三个名字(“A”,在里面,“..”中“”其子目录):

$ ls -id a ; cd a; ls -id .; ls -id b/.. 
39754633 a 
39754633 . 
39754633 b/.. 

所有这三个名字指向相同的目录(inode 39754633)。

+0

这是真的。当创建一个direcory时,我还会得到一个2的硬链接数。我也不能创建一个目录的硬链接:“mkdir foo; ln foo bar”产生输出“ln:'foo':硬链接不允许用于目录”。你为什么这么想?此外,第二个“igor”之后的第一个数字是存储文件或目录所需的字节数,是正确的?谢谢,约翰戈奇 – 2012-07-15 08:36:09

+0

因此,一个硬链接的目录数量总是设置为2.这是为什么?为什么不是1例如?谢谢,John Goche – 2012-07-15 08:36:46

+0

'硬链接不允许用于目录',这是真的,你不能使硬链接对目录;但是如果你在目录中创建子目录,它的名字就会增加。这是因为eac subdirectoru中有'..'。 “第二个”igor“后面的第一个数字 - 是的,这是真的;这是文件/目录的一部分。 – 2012-07-15 08:39:02

试图解释为什么目录的初始链接计数值= 2。 P1。看看这是否有帮助。

任何文件/目录都由inode标识。 硬链接数量=对inode的引用数量。

创建目录/文件时,会在父目录中创建一个目录项( 窗体 - {myname,myinodenumber})。 这使得该文件/目录的inode的引用计数= 1。

现在,当从该还创建用于目录中的空间中创建一个目录开它默认应该是具有两个目录条目 一个针对其创建的目录,另一个为是的两个条目的 父目录表格{。,myinodenumber} 和{..,myparent'sinodenumber}。

当前目录由“。”引用。并且父母通过“..”来引用。

因此,当我们创建一个目录时,链接的值的初始数量= 1 + 1 = 2, ,因为有两个引用myinodenumber。并且链接值的父代编号 增加1.