首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么不允许硬链接到UNIX/Linux中的目录

硬链接到UNIX/Linux中的目录是不被允许的,因为这可能会导致文件系统的不一致和数据丢失。

在UNIX/Linux系统中,硬链接是通过inode来实现的,它是一个文件或目录的唯一标识符。当创建一个硬链接时,它会指向相同的inode,因此对其中一个文件或目录进行修改会影响到另一个文件或目录。如果删除一个硬链接,其他硬链接仍然可以访问该文件或目录,因为它们都指向相同的inode。

目录是一个特殊的文件,它包含了其他文件和目录的列表。如果允许硬链接到目录,可能会导致文件系统的循环链接,从而使得文件系统无法正常工作。例如,如果有两个目录A和B,它们之间存在循环链接,那么当尝试遍历A目录时,可能会导致无限循环,从而使得文件系统崩溃。

因此,为了保证文件系统的一致性和数据的安全,UNIX/Linux系统不允许硬链接到目录。如果需要在不同位置引用相同的目录,可以使用符号链接(软链接)来实现。符号链接是一个特殊的文件,它包含了指向另一个文件或目录的路径。与硬链接不同,符号链接不会增加目标文件或目录的链接计数,因此不会影响文件系统的一致性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

linux软链接和硬链接

硬链接文件 硬链接文件有两个限制: 1、不允许给目录创建硬链接; 2、只有在同一文件系统中的文件之间才能创建链接。 对硬链接文件进行读写和删除操作时候,结果和软链接相同。...硬连接的命令是   ln -d existfile newfile 硬链接文件有两个限制   1)、不允许给目录创建硬链接;   2)、只有在同一文件系统中的文件之间才能创建链接。   ...二  两者之间的区别 硬连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。    ...在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。...软链接也有硬链接没有的缺点,因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。

8.6K50

Linux基础知识点

i节点是linux中的,Unix中是v节点。...例如,在Linux中,所有的账号密码都记录在/etc/shadow这个文件里面,这个文件的权限为---------- 1 root root,可见root没有读写权限,但是为什么root实际上可以读取和修改...因此在创建目录的时候一般都是具有可执行权限。 9.硬链接与软链接 9.1为什么不能给目录建立硬链接 硬链接有两个限制,一个是不能跨文件系统,一个是不能连接到目录。...如果对目录建立硬链接,比如将/etc建立一个硬链接/etc_hd时,那么在/etc_hd的目录时,那么在/etc_hd下面的文件名要创建硬链接,而不是仅连接到/etc_hd与/etc而已。...目录的数据实体中记录着每一个文件与该文件的inode节点地址。可见,硬链接本质上是文件的另一个别名。

1.8K21
  • linux系统目录结构的由来和发展

    这篇主要是介绍“linux系统目录结构的由来和发展”的内容了,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家解决linux系统目录结构的由来和发展的问题...长久以来,我也感到很费解,不明白为什么这样设计。像大多数人一样,我只是根据《Unix文件系统结构标准》(Filesystem Hierarchy Standard),死记硬背不同目录的区别。   ...昨天,我读到了Rob Landley的简短解释,这才恍然大悟,原来Unix目录结构是历史造成的。   ...随着硬盘容量越来越大,各个目录的含义进一步得到明确。   /:存放系统程序,也就是At&t开发的Unix程序。   /usr:存放Unix系统商(比如IBM和HP)开发的程序。   ...到此这篇关于“linux系统目录结构的由来和发展”的文章就介绍到这了,更多相关linux系统目录结构的由来和发展内容,!

    39710

    Linux学习笔记之详解linux软连接和硬链接

    在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。...硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。...硬连接的命令是 ln -d existfile newfile 硬链接文件有两个限制 1)、不允许给目录创建硬链接; 2)、只有在同一文件系统中的文件之间才能创建链接。...0x01 两者之间的区别 硬连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。...在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要 文件,以防止“误删”的功能。

    3.3K50

    Linux硬链接与软链接

    在Linux中,连接文件有两种,一种类似于Windows的快捷方式,可以让你快速地链接到目标文件(或目录),这种称为软链接(soft link),也叫作符号链接(symbolic link);另一种则是通过文件系统的...但是,Unix/Linux系统,允许多个文件名指向同一个inode号码。...(2)不能连接到目录。因为硬链接连接到目录可会导致目录的inode与实体block形成环状。此时,如果删除目录,会导致目录实体block无法被系统访问,产生孤立的目录(从根目录无法再访问)。...比如对目录/etc在其目录或其子目录中建立一个硬链接/etc/etc_hd,此时就会形成环状,如下图所示: ?...not allowed to directories in UNIX/Linux.StckOverflow

    23.4K20

    Linux系列之链接

    前言 在类Unix系统中,一个文件有可能被多个名字引用。我们使用链接来实现这一点,链接共有两种类型:硬链接和软链接,本文分别来介绍它们。 硬链接 硬链接也允许指向文件,但与符号链接的方式不同。...它们是Unix创建链接的原始方式。默认情况下,每个文件都有一个单独的硬链接,该链接给出了文件的名称,当我们创建一个硬链接时,我们是为一个文件创建一个额外的目录条目。...其中有两个限制: 硬链接不能引用自己文件系统以外的文件。它所引用的文件必须在同一磁盘分区上。 硬链接不能引用目录。 硬链接与文件本身是没有区别的。...我在下面列出了一个包含硬链接和符号链接的目录,我们可以看到,硬链接没有特殊的指示,表明它是一个硬链接,而符号链接则有明显的指示(权限中的l和显示它链接到什么的->)。...它们也被称为软链接或符号链接,它们被用来指向任意计算机上的任何文件或目录,类似于Windows中的快捷方式和Mac OS中的别名。

    2.5K20

    面试必备(背)-Linux八股文系列!

    Linux 概述 什么是Linux Linux 是免费可自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。...为什么 Linux 体系结构要分为用户空间和内核空间的原因? 现代 CPU 实现了不同的工作模式,不同模式下 CPU 可以执行的指令和访问的寄存器不同。...它主要用于将 Linux 操作系统加载到主内存中,以便它可以开始运行。 Linux 的目录结构是怎样的? 这个问题,一般不会问。更多是实际使用时,需要知道。...不足:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径...总结区别如下: 硬链接不可以跨分区,软件链可以跨分区。 硬链接指向一个 inode 节点,而软链接则是创建一个新的 inode 节点。

    3.9K42

    停机优化 - 保持游戏DAU的4个技巧

    2.2.1 为什么不用mv的方式呢? ? 众所周知,在操作系统中,对目录名的修改(MOVE)只是在文件系统中改个名而已,数据块本身不会修改。...2.2.1.1 Linux平台对目录的MV 和 CP的差别 我们先来做一个对10G文件cp和mv的耗时测试,算了下差不多是3万倍 ? 为什么相差这么大呢? 这个要说说的Linux的文件系统。...刚刚我们在查看目录时发现有. 和 .. 文件(Linux中目录也看作是文件),目录的硬链接数和这个也有关系。 ls 命令的-l参数结果中有一项是硬链接数 ?...简单看,你创建一个目录,他的硬链接数是2,在这个目录下创建1级子目录,该目录的硬链接会+1 ,看起来是一个目录的硬链接是一级子目录数量+2.(小声说,这个是我猜的,没找到官网说明。...另外这个是在不允许目录创建硬链接的前提下,Wikipedia的Hard link提到现代的操作系统不允许目录创建软链接,但UNIX System V是可以的) 说完目录是inode 和 文件名的对应表后

    84660

    Java面试——Linux

    十四、为什么 Linux 体系结构要分为用户空间和内核空间的原因: 【1】现代 CPU 实现了不同的工作模式,不同模式下 CPU 可以执行的指令和访问的寄存器不同。...**也就是说在 Linux 系统中有一个重要的概念:一切都是文件。其实这是 Unix 哲学的一个体现,而 Linux 是重写 Unix 而来,所以这个概念也就传承了下来。...在 Unix 系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。...软链接不足:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径...实际场景下,基本是使用软链接总结区别如下: 【1】硬链接不可以跨分区,软件链可以跨分区。 【2】硬链接指向一个 inode 节点,而软链接则是创建一个新的 inode 节点。

    97330

    ln命令

    [origin] [target] 参数 -b, --backup: 删除,覆盖目标文件之前的备份。 -d, -F, --directory: 建立目录的硬链接。...-n, --no-dereference: 把符号链接的目的目录视为一般文件。 -s, --symbolic: 对源文件建立符号链接,而非硬链接。...链接方式 软链接 软链接以路径的形式存在,类似于Windows操作系统中的快捷方式。 软链接可以 跨文件系统,硬链接不可以。 软链接可以对一个不存在的文件名进行链接。 软链接可以对目录进行链接。...硬链接 硬链接,以文件副本的形式存在,但不占用实际空间。 不允许给目录创建硬链接。 硬链接只有在同一个文件系统中才能创建。 示例 为file.txt创建软链接filesoftlink。.../linux-comm-ln.html https://www.tutorialspoint.com/unix_commands/ln.htm

    96620

    Linux磁盘-inode&硬连接&软连接

    Linux磁盘涉及到的命令不是很多,但是在实际运维中的作用却很大,因为Linux系统及业务都会承载到硬盘上。如果磁盘使用和配置不合理,可能会引起系统无法启动或者业务系统无法提供预期的服务。...,特别是在类 Unix 操作系统中(如 Linux)。...在 Linux 中,可以使用命令如 ls -i 来查看文件或目录的 inode 号码,或使用 stat 命令查看详细的 inode 元数据信息。...硬链接与原始文件在文件系统中的inode相同,因此不同的文件名实际上引用了同一个文件内容,它们在系统级别上没有区别,只是文件系统为每个文件名维护了一个目录项。...文件系统层级的链接。 跨文件系统 不能跨越文件系统。 可以跨越文件系统。 目标类型 只能链接到文件,不能链接到目录。 可以链接到文件或目录。 inode 与目标文件相同的inode号。

    9800

    Linux软链接与硬链接实战解析

    1.硬链接 一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。...inode的特殊作用 由于inode号码与文件名分离,这种机制导致了一些Unix/Linux系统特有的现象。 有时,文件名包含特殊字符,无法正常删除。...在Linux中,多个文件指向同一个索引节点是允许的,像这样的链接就是硬链接。硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。...2.软链接(也叫符号链接)与硬链接不同,文件用户数据块中存放的内容是另一文件的路径名的指向。软链接就是一个普通文件,只是数据块内容有点特殊。软链接可对文件或目录创建。(快捷方式指的就是软链接)。...例如某个文件文件系统空间已经用完了,但是现在必须在该文件系统下创建一个新的目录并存储大量的文件,那么可以把另一个剩余空间较多的文件系统中的目录链接到该文件系统中,这样就可以很好的解决空间不足问题。

    6.2K20

    Linux文件的软链接和硬链接

    1.1索引节点 索引节点是指在许多类Unix文件系统中的一种数据结构。每个索引节点保存了文件系统中的一个文件系统对象的元信息数据,但不包括数据内容或者文件名。...1.2硬连接 一般情况下,文件名和inode号码是”一一对应”关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。...硬链接就是同一个文件使用了多个别名(他们有共同的 inode)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。...硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。...只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

    7.7K01

    【Linux】为什么创建目录文件,硬链接数是2;创建普通文件时,硬链接数是1?(超详细图文解答)

    12 54329 -rwxr-xr-x. 1 root root 7438 "9月 13 14:56" a.out 2.硬链接文件不属于真正意义上的文件 ※为什么软连接是一个独立的文件而硬链接不是?...我们对test2创建一个硬链接文件test1.hard.link 发现 二者inode编号一致 3.Linux中不允许用户对目录建立硬链接文件 为了1. 防止目录循环引用 2....保护文件系统结构完整性 3.简化文件系统设计,Linux中不允许用户对目录建立硬链接文件 二.解析部分: 我们分别创建一个普通文件testfile和一个目录文件testdir,ls -li查看源目录;...发现创建目录,硬链接数是2;创建文件时,硬链接数是1 普通文件,只有 文件名 和inode编号有映射关系 , 所以硬链接数为1 我们进入空目录,任何一个空目录, 下面都有两个隐藏的 硬链接文件...表示当前目录——————因为这个文件(指向)的inode,和目录文件本身的inode是同一个 ..表示上一级目录 所以目录文件,除了 文件名 和inode有映射关系 ,还有目录文件下面的硬链接.

    11410

    【操作】使用 Cobalt Strike 对 Linux 主机进行后渗透

    主要是为了对目标网络形成控制链。...长话短说,有两种方法可以在 Cobalt Strike 中让 Linux 主机上线: 0x01 方法一:SSH 会话 1、原理篇 【SSH 会话】是针对 UNIX 目标进行后渗透的 Cobalt Strike...那么你可能会问了,那如果有了 SSH 凭据,为什么我不自己登上去看,还非要上个 CS 干什么,毕竟 CS 又不是稳控。 个人认为这主要是为了在后渗透的网络拓扑中把目标网络的主机们串起来,便于横向。...因为 SSH 会话生成的 Beacon 还具有连接到 TCP Beacon 的功能。这样可以形成一个 Win → Linux → Win 的拓扑链。...大多数 UNIX 目标中已经提供了 SSH 程序。 功能上已经实现了 Beacon 的基本功能了。

    3.7K10

    Linux中ln命令的用法以及分析

    文件系统 在Linux中每一个文件大体上由三个部分组成: 文件名:这个是用来标记这个文件的符号,也就是我们所理解的文件名; inode:inode存放的是文件的metadata,也就是元信息,包括了文件的权限...硬链接还有一些非常有趣的性质: 不允许给目录创建硬链接 为什么不允许给目录创建硬链接呢?原因其实非常好玩。事实上Linux对目录本身是有硬链接的,我们知道每一个文件夹下都至少会有两个链接,一个是'.'...、表示当前文件的父目录。事实上,这个'.'就是对当前文件的一个硬链接,而'..'...是对当前文件夹的父目录的硬链接,这就是为什么如果我们新建一个文件夹后,用stat查看这个文件夹的链接数,会发现这个数至少是2而不是1。 既然有硬链接,那么为什么不允许用户创建呢?原因也很有趣。...显然这是一个不可描述的问题。因此,为了避免这种情况的发生,Linux的设计者才做了这样一个规定。 只有在同一文件系统中的文件之间才能创建链接。

    3.1K30

    彻底明白Linux硬链接和软链接

    只有在同一文件系统中的文件之间才能创建硬链接,不能对目录进行创建,但是这个硬链接又可以建立多个,也就是可以有多个文件指向同一个索引节点,或者说一个文件可以拥有多个路径名,因此一个文件可以对应多个文件名。...那么,为什么目录就不能创建硬链接?我们来试一下。...如上图一样,是不允许用户给目录去创建硬链接的,目录树大家知道吧,如果给目录创建硬链接,我们仔细想一想,这样的话那目录树是不是就变成环形的了,当我们要定位这个目录下的文件的时候,就不能通过名字去定位了。...我们尝试删除硬链接看看: 然而,在Linux系统中,都会包含多个文件系统,这些文件系统都会位于不同的磁盘或者分区,就如前面所说的,硬链接只能在同一文件系统下创建,这是不是有点不太方便?...有时候我们总是需要执行很多的命令,而且执行的这些命令又是对应不同的目录的路径,有些路径真是又长有难记,敲出整个路径真是费劲,效率也变低了,这时候软链接的作用就体现出来了,把这些又长又臭的路径创建一个软链接到当前的路径下

    5K10

    【Linux】软硬连接与动静态库

    属性中有一列为硬连接数 软链接的内容:目标文件所对应的路径字符串,类似与Windows中的快捷方式 软连接可以跨越不同的文件系统、分区和磁盘创建,非常适合用于指向不同位置的文件或目录,尤其是当需要方便快捷地访问文件时...在 Linux 文件系统中,每个文件都有一个唯一的 inode,inode 存储了文件的元数据(如文件的权限、大小、数据块的位置等),而硬连接通过创建多个文件名来共享同一个 inode。...A目录的引用计数自动+1 linux中不允许给目录建立硬连接,避免形成路径环绕 02.动静态库 我们用过很多c/c++的标准库,strerror,strstr,STL等,必须要有具体的实现,实现在库当中...静态库(Static Library) 静态库是一个包含预编译代码的文件,在编译时与程序的源代码一起进行链接。静态库文件的扩展名通常是 .a(Linux/Unix)或 .lib(Windows)。...) 动态库(Dynamic Library) 文件扩展名 .a(Linux/Unix)或 .lib(Windows) .so(Linux/Unix)或 .dll(Windows) 链接方式 编译时链接到可执行文件

    3200

    整理了一些常见的Linux面试题

    一、Linux 概述 1. 什么是Linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。...为什么 Linux 体系结构要分为用户空间和内核空间的原因? 1. 现代 CPU 实现了不同的工作模式,不同模式下 CPU 可以执行的指令和访问的寄存器不同。 2....总结区别如下: · 硬链接不可以跨分区,软件链可以跨分区。 · 硬链接指向一个 inode 节点,而软链接则是创建一个新的 inode 节点。...类似于Windows操作系统中的快捷方式 2.软链接可以 跨文件系统 ,硬链接不可以 3.软链接可以对一个不存在的文件名进行链接 4.软链接可以对目录进行链接 硬链接:...2.不允许给目录创建硬链接 3.硬链接只有在同一个文件系统中才能创建 需要注意: 第一:ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化

    1.1K40

    Windows 7 mklink命令详解

    mklink是Windows 7下的一个类似于linux下In的命令,其作用是在NTFS文件系统中创建文件或目录的链接(类似于桌面快捷方式)。...; 4、硬链接不允许对空文件建立链接,符号(软)链接可以。...Mklink命令用途 转移系统中的用户设置文件   Windows 7中将用户设置与系统文件分离,所有的用户设置及用户文件都存储在C盘下的User目录(在中文版Windows 7中显示为“用户”目录...Windows 7安装完成后可以将C盘下的User目录转移到非系统分区,如D盘,这样,重装系统后只要重新将C盘下的User目录链接到D盘即可。.../S /Q 3.创建C盘下的User的软件链接,链接到D盘User目录:mklink /J “C:\Users” “D:\Users” 重装系统后只需重复第二条和第三条命令及可 有了这条命令就再也不怕重新系统了

    1.5K20
    领券