UNIX上的硬链接是什么?它们与副本有什么不同?

UNIX上的硬链接是什么?它们与副本有什么不同?,unix,Unix,我试图对Linux中“硬链接和软链接”的概念有一个基本的了解。 我在网上看到了几个链接,他们都说,在理解硬链接和软链接之前,必须先了解Unix文件系统。 我将首先写下我到目前为止得到的,主要是为了你纠正我的错误…(我知道我可能会过度简化事情,这是为了…好吧…简化事情): Unix文件系统上的每个文件(或文件夹)都不是通过名称来标识的,而是通过一个表示称为inode的数据结构的编号来标识的 inode包含有关其引用的文件的信息,如权限、大小、磁盘位置等 Unix文件系统中的目录(文件夹)实际上只

我试图对Linux中“硬链接和软链接”的概念有一个基本的了解。
我在网上看到了几个链接,他们都说,在理解硬链接和软链接之前,必须先了解Unix文件系统。
我将首先写下我到目前为止得到的,主要是为了你纠正我的错误…(我知道我可能会过度简化事情,这是为了…好吧…简化事情):

  • Unix文件系统上的每个文件(或文件夹)都不是通过名称来标识的,而是通过一个表示称为inode的数据结构的编号来标识的
  • inode包含有关其引用的文件的信息,如权限、大小、磁盘位置等
  • Unix文件系统中的目录(文件夹)实际上只不过是一个列表;它包含的文件的inode映射名称。这意味着,文件名与文件内容(磁盘上的实际数据)分离
所以我们可以这样做:

我还读到,这就是我感到困惑的地方,文件的名称inode映射不一定是唯一的,这意味着一个目录可以包含两个不同的文件名,它们映射到相同的inode编号(从而映射到文件系统中的同一个文件,从而映射到磁盘上的相同实际内容数据),两个不同的目录可能包含相同的名称索引节点映射(这与“用所有内容处理文件夹”有何不同?),因此使用任一路径名都会导致磁盘上的实际内容相同。。。在linux上如何准确地用两个不同的名称命名一个文件,它有什么好处

顺便问一下,是否有一些linux工具可以显示给定inode的信息

how is it different from copying a folder with all its content?
假设您有一个8GB的U盘,其中包含一个6GB大小的任意文件夹。您希望可以从两个不同的位置访问文件夹,例如/so_very_tire/shared_big_folder和/james/foobar,但在这两个位置进行复制不适合U盘。因此,可以创建指向文件/文件夹的引用或符号链接。此文件夹的实际位置可以是任何位置,例如在/6GB_文件夹中

为此,我们从/so\u very\u treat/shared\u big\u folder=>/6GB\u folder和/james/foobar=>/6GB\u folder创建一个符号链接

现在访问目录/so\u very\u tire/shared\u big\u文件夹和/james/foobar将导致/6GB\u文件夹

要查找有关文件和indo的详细信息,请打开命令提示符并键入

$man ls
您可以使用
ls-i
列出文件的索引节点编号

当您想将链接放置到文件不存在的文件时,通常会使用它们。例如,您在/etc/nginx/sites available/中放置了服务器的配置文件,为了启用该文件,您想将其放置在/etc/site enabled文件夹中,但不想制作副本。通过创建符号链接,对“站点可用”文件夹中的文件所做的所有编辑也将指向“站点中的符号链接”所指向的文件。这是因为一个是文件,另一个点是同一个文件

要创建符号链接,请使用

ln -s /existing-file /symbolic-link

此文件夹的实际位置可以在任何地方
——它是否可以位于上述两个文件夹之外,并且这两个文件夹将指向该位置的符号链接以访问?请回答此问题,+1正在等待您!是的,这里提到了3个文件夹。它可以在文件系统的任何地方;即使跨不同的受支持文件系统。**谢谢@James.a upvote为您投票。请注意,
此文件夹的实际位置可以在任何地方
适用于符号链接-硬链接不能跨越文件系统边界,因为每个文件系统都有自己的索引节点集,它们可能会冲突。有些文件系统甚至没有索引节点;例如,您的U盘可以是NTFS或FAT32文件系统,但您可以从unix磁盘创建一个指向它的符号链接,并在移除U盘时留下一个悬空链接。硬链接永远不能离开悬挂链接,当其中一个链接文件被删除时,它们的链接计数会减少。“实际位置”不在文件夹/目录下。实际位置位于文件系统中inode中指定的位置。目录条目通过文件的inode引用实际位置。我们将文件视为“在”目录下或“在”目录内,因为所有的用户级界面都是这样显示的。
stat foo
显示inode编号&c。对于
foo
…上的文件来说,这不是关于编程的问题;超级用户可能是一个更好的地方。