我知道这是非常基本的,但我找不到这些信息 在ls手册页中,需要复习:
$ ls -ld my.dir
drwxr-xr-x 1 smith users 4096 Oct 29 2011 my.dir
drwxr-xr-x之后的数字1是什么意思? 它是否代表了直接my.dir的硬链接数量? 我记不起来。我在哪里可以找到这些信息?
谢谢,
John Goche
答案 0 :(得分:3)
我在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.
答案 1 :(得分:3)
这是文件的命名(硬链接)数。我想,这里有一个错误。对于目录,这必须至少为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
)。
答案 2 :(得分:0)
尝试解释为什么目录初始链接计数值= 2。 PL。看看这是否有帮助。
任何文件/目录都由inode标识。 硬链接数= inode的引用数。
创建目录/文件时,一个目录条目( form - {myname,myinodenumber})在父目录中创建。 这使得该文件/目录的inode的引用计数= 1。
现在,除此之外创建目录时,还会创建目录空间,默认情况下应该有两个目录条目 一个用于创建的目录,另一个用于 父目录,它是{。,myinodenumber}形式的两个条目 和{..,myparent'sinodenumber}。
当前目录由“。”引用。父母由“......”引用。
因此,当我们创建一个目录时,Links'的初始数量值= 1 + 1 = 2, 因为myinodenumber有两个引用。和父母的号码 链接值增加1。