我只是想阐明,如果硬/符号链接实际上是所创建??

一个文件

我跑的命令:

ln source hardlink
ln -s source softlink

- ls命令显示了这个2个链接作为文件

所以我的查询,并ln / ln -s实际创建一个文件?

此致 darkie15

有帮助吗?

解决方案

是,并没有: - )

在UNIX中,一个文件的内容是从该文件的目录条目是不同的。你可以有多个目录条目指向同一个内容(查找的inode 对于如何描述作品)和,这里的棘手位:

所有这些目录条目都是平等的。的即使一个可能被首先创建,有关于它没有什么特别的。如果你删除它,内容不消失,只是目录项。内容将消失,一旦inode的具有指向它(零目录项和所有程序关闭文件 - 我以前试图通过清理磁盘空间,删除日志文件才发现,被咬伤,因为过程中仍然有文件打开时,文件内容不被回收,即使没有目录条目指向它们)。

这对硬链接。

软链接是有点麻烦。他们创造各种各样的“文件”(独立的inode),包含路径目标文件。和那些链接是的相等。删除原来的会留给你一个软链接指向行不通的。

由于i节点是在给定的文件系统唯一的,硬链接不能引用数据上的不同的文件系统。

软链接不具有限制,因为它们的路径存储到目标文件,而不是它的inode。

下面的转录物可有助于:

$ echo hello >f1
$ ln f1 f2
$ ln -s f1 f3
$ ls -ial f*
    7385 -rw-r--r-- 2 pax None 6 May 11 14:09 f1
    7385 -rw-r--r-- 2 pax None 6 May 11 14:09 f2
    4672 lrwxrwxrwx 1 pax None 6 May 11 14:09 f3 -> f1
$ cat f1
    hello
$ cat f2
    hello
$ cat f3
    hello
$ rm f1
$ ls -ial f*
    7385 -rw-r--r-- 2 pax None 6 May 11 14:09 f2
    4672 lrwxrwxrwx 1 pax None 6 May 11 14:09 f3 -> f1
$ cat f1
    cat: f1: No such file or directory
$ cat f2
    hello
$ cat f3
    cat: f3: No such file or directory

我只使用了索引节点号的最后四位数字,以保持进入短(而不是打你像43910096366994672 inode编号),但你可以看到,f1f2有相同的inode,而f3是不同的。您还可以看到最初创建作为f1文件的内容生存将其删除,因为f2仍然引用它。

不过,由于f3被引用f1名字而不是它的inode,你想使用它的一个错误。


旁白:你会喜欢它,当UNIX玩具你是这样的:

$ ls f*
    f2  f3
$ cat f3 # What the ...?
    cat: f3: No such file or directory

几乎同样多的乐趣,创建一个名为<大骨节病>空间 <大骨节病>退格 <大骨节病> X ,然后看别人尝试将其删除文件: - )

其他提示

既不一个创建文件。

在磁盘中的文件由一个确定的“索引节点”。目录映射文件名到索引节点。硬链接的意思是“在这个目录下创建一个新的文件名,它指向相同的inode作为文件名我。”

一个符号链接的意思是“在这个目录中创建新的文件名,它指向任何索引节点这个其他文件点。”

由于mangoman指出了一个评论,一个符号链接不会创建一个链接目标的名称的文件,但你不应该重视起来。这是一个特殊的文件,它是关你的事。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top