精华内容
下载资源
问答
  • linux中创建硬链接文件
    千次阅读
    2021-05-16 14:53:10

    在linux系统中,内核为每一个新创建的文件分配一个Inode(索引节点),每个文件都有唯一的inode号。文件属性保存在索引节点里,在访问文件时,索引节点被复制到内存,从而实现文件的快速访问。

    链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。有硬链接和软链接,软链接又称为符号链接

    一、硬链接

    实质上是一个指针,指向文件索引节点,系统并不为它重新分配inode。使用 ln 来创建

    ln hello.c hello 建立hello.c的硬链接hello

    特点:

    1. 不允许给目录创建硬链接

    2. 只有在同一个文件系统才能创建(不能跨文件系统)

    例子: 为file1创建一个硬链接,file1的链接数目就会增加。当删除链接时,链接数减1,当链接数为0时,内核才会把文件内容从磁盘上删除。

    二、软链接(符号链接)

    使用 ln -s 来创建

    ln -s hello.c hello 建立hello.c的软链接hello

    特点:

    1. 类似于windows中的快捷方式

    2. 允许给目录创建软链接

    3. 能跨文件系统

    当file1创建一个软链接,file1的链接数目不会增加。源文件大小和链接文件大小是不一样的。

    三、区别

    对于硬链接 当修改链接文件或者源文件时,文件会被改变,因为其本质是一个指针。

    对于软连接 删除链接文件对源文件无影响,但是如果删除源文件,链接文件就找不到要指向的文件。软链接有自己的inode,并在磁盘上有一小片空间存放路径名

    原文:https://www.cnblogs.com/gezhuangzhuang/p/12739920.html

    更多相关内容
  • linux系统,内核为每一个新创建文件分配一个Inode(索引节点),每个文件都有唯一的inode号。文件属性保存在索引节点里,在访问文件时,索引节点被复制到内存,从而实现文件的快速访问。 链接是一种在共享文件和...

    在linux系统中,内核为每一个新创建的文件分配一个Inode(索引节点),每个文件都有唯一的inode号。文件属性保存在索引节点里,在访问文件时,索引节点被复制到内存,从而实现文件的快速访问。

    链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。有硬链接和软链接,软链接又称为符号链接

    一、硬链接

    实质上是一个指针,指向文件索引节点,系统并不为它重新分配inode。使用 ln 来创建

    ln hello.c hello 建立hello.c的硬链接hello

    特点:

    1. 不允许给目录创建硬链接

    2. 只有在同一个文件系统才能创建(不能跨文件系统)

    例子: 为file1创建一个硬链接,file1的链接数目就会增加。当删除链接时,链接数减1,当链接数为0时,内核才会把文件内容从磁盘上删除。

    二、软链接(符号链接)

    使用 ln -s 来创建

    ln -s hello.c hello 建立hello.c的软链接hello

    特点:

    1. 类似于windows中的快捷方式

    2. 允许给目录创建软链接

    3. 能跨文件系统

    当file1创建一个软链接,file1的链接数目不会增加。源文件大小和链接文件大小是不一样的。

    三、区别

    对于硬链接 当修改链接文件或者源文件时,文件会被改变,因为其本质是一个指针。

    对于软连接 删除链接文件对源文件无影响,但是如果删除源文件,链接文件就找不到要指向的文件。软链接有自己的inode,并在磁盘上有一小片空间存放路径名

    原文:https://www.cnblogs.com/gezhuangzhuang/p/12739920.html

    展开全文
  • 本文将介绍如何在 Linux 中为文件创建硬练级和符号(软)链接,并探讨两者之间的相同和不同之处。符号链接与 Windows 的快捷方式很像。Windows 的快捷方式是一个带箭头的图标,空间占用一般很小,仅仅提供了一个...

    摘要

    本文将介绍如何在 Linux 中为文件创建硬练级和符号(软)链接,并探讨两者之间的相同和不同之处。

    引言

    符号链接与 Windows 中的快捷方式很像。Windows 中的快捷方式是一个带箭头的图标,空间占用一般很小,仅仅提供了一个指向目标文件的通道,Linux 中的符号链接也类似。符号链接应用很灵活,可以为任意文件创建符号链接。

    虽然硬链接名字里面也有链接二字,但其与符号链接还是相当不一样的。要理解硬链接,我们得先了解若干基本概念。首先我们得搞明白 Linux 的文件是如何存储中,在 Linux 中当划分磁盘分区并格式化的时候,整个分区会被划分为两部分,即 Inode 区和 Data Block 区。

    Linux 中每个文件都被分成两部分存放,一部分是文件的唯一标识,Inode-number 以及属性信息放在 Inode 区的一个 inode 中,Inode-number 和 inode 是一一对应的;另一部分是文件的实际数据,放在 Data Block 区中,在 Linux 中我们需要通过文件的 inode 来找到存放文件数据的 data block。在一个硬盘分区,不可能有两个文件公用一个 inode。自然也不可能有两个文件的 inode-number 是一样的。

    如果我们将硬盘分区中所有的文件比作样一本书的话,inode 区就是其目录,data block 区对应其内容。我们必须通过目录才能找到具体的内容。我们可以通过 ls -il 列出文件的 inode-number(列出的第一个字段就是)。至此,我们初步弄明白了 Linux 中的文件到底是如何存储的,接下来我们还得弄明白 Linux 中的目录到底是怎样的文件。

    Linux 中目录是一张表,每个表项代表一个文件。目录中有多少文件,就有多少表项。每个表项都包括两样数据,一是文件名,再就是 inode-number。因此 Linux 中存取文件的过程就是,通过文件名找到对应的 inode-number,再找到 inode,最后找到对应的数据。

    硬链接就是在目录这张表中,让一个 inode-number 对应了多个文件名,文件 inode 和数据还是一份,没有变,只不过文件多了一个名字,这个名字就称为硬链接。

    用法

    符号链接

    Linux 中使用 ln (link 的缩写)命令加上 -s(symbolic 的缩写) 选项创建符号链接。

    ln -s [链接指向的文件] [链接名]

    • ln -s test/hello.sh hello:为 test 目录下的 hello.sh 文件创建一个名为 hello 的符号链接
    $ mkdir test # 创建 test 目录
    $ touch test/hello.sh # 在 test 目录下创建 hell.sh 文件
    $ vi test/hello.sh # 编辑 test 目录下的 hello.sh 文件,写入内容:echo "hello"
    $ ln -s test/hello.sh hello # 为 test 目录下的 hello.sh 文件创建名为 hello 的符号链接
    $ chmod 764 test/hello.sh # 修改 test 目录下的 hello.sh 的权限为可执行
    $ ls -l # 以长格式列出当前工作目录下的文件
    总用量 4
    lrwxrwxrwx 1 sdxx09 sdxx09   13 67 09:31 hello -> test/hello.sh
    drwxrwxr-x 2 sdxx09 sdxx09 4096 67 09:30 test
    $ ./hello # 直接执行 hello 可以打印出 hello 了,而不用转到 test 目录下去执行 hello.sh 文件(这就是符号链接的好处)
    hello
    $ rm test/hello.sh
    $ ls -l
    总用量 4
    lrwxrwxrwx 1 sdxx09 sdxx09   13 67 09:31 hello -> test/hello.sh # (这里会标红)
    drwxrwxr-x 2 sdxx09 sdxx09 4096 67 09:42 test
    $ ./hello
    -bash: ./hello: 没有那个文件或目录
    

    虽然我们可以通过符号链接文件来读、写和执行文件,但却不代表符号链接文件和源文件是同一个文件。如果符号链接文件指定的源文件被删除,那这个符号链接文件就会失效(用 ls -l 列出会发现标红),读取或执行会显示“没有哪个文件或目录”的提示,这种情况下,我们就称这个符号链接断裂了。

    硬链接

    Linux 中使用 ln (link 的缩写)命令创建硬链接。

    ln [链接指向的文件] [链接名]

    • ln 1.txt 2.txt:为 1.txt 文件创建一个名为 2.txt 的硬链接
    $ touch 1.txt
    $ ls -il
    总用量 0
    18388234 -rw-rw-r-- 1 sdxx09 sdxx09 0 67 10:08 1.txt
    $ ln 1.txt 2.txt
    $ ls -il
    总用量 0
    18388234 -rw-rw-r-- 2 sdxx09 sdxx09 0 67 10:08 1.txt
    18388234 -rw-rw-r-- 2 sdxx09 sdxx09 0 67 10:08 2.txt
    $ ln 1.txt 3.txt
    $ ls -il
    总用量 0
    18388234 -rw-rw-r-- 3 sdxx09 sdxx09 0 67 10:08 1.txt
    18388234 -rw-rw-r-- 3 sdxx09 sdxx09 0 67 10:08 2.txt
    18388234 -rw-rw-r-- 3 sdxx09 sdxx09 0 67 10:08 3.txt
    $ rm 2.txt
    $ ls -il
    总用量 0
    18388234 -rw-rw-r-- 2 sdxx09 sdxx09 0 67 10:08 1.txt
    18388234 -rw-rw-r-- 2 sdxx09 sdxx09 0 67 10:08 3.txt
    $ rm 3.txt
    $ ls -il
    总用量 0
    18388234 -rw-rw-r-- 1 sdxx09 sdxx09 0 67 10:08 1.txt
    

    创建前后,文件属性的第三个字段发生了改变,由一变成了二,表示文件的硬链接数目增加了一。当我们再为 1.txt 创建一个硬链接 3.txt 时,此时文件的硬链接数目变成了 3。但我们清楚,1.txt、2.txt、3.txt 本质上都是同一个文件。只不过这个文件有多个名字罢了。我们通过观察其 inode-number 可以发现,都是一样的,充分说明了这三个文件名实质上都指向了同一个文件。我们可以通过任意一个硬链接文件来读写和执行源文件。

    如果将源文件删除掉,创建的硬链接并不会像符号链接一样断裂。不过文件属性中的硬链接数据会减一。我们为 1.txt 文件创建了两个硬链接 2.txt 和 3.txt,那么就相当于这个文件在文件系统中有了三个文件名。这三个文件名都指向同一个文件内容,有点像狡兔三窟的感觉。删除了一个文件,只是将某个文件名从文件系统中移除了,我们仍然能通过余下的文件名来访问这个文件的数据。事实上,只要文件还存在一个文件名,这个文件就一切正常。除非,你将三个文件都删除,我们才无法通过文件名找到文件 inode,进而访问文件数据,文件这才叫真真被删除。

    硬链接由于文件系统限制,不如符号链接灵活。有两条需要注意:

    1. 强烈不推荐为目录创建硬链接。容易造成目录遍历死循环。具体原因很复杂,想了解的可以点击这里查看。
    2. 不能跨硬盘分区创建硬链接。比如你不能在 sda1 分区中创建一个指向 sda2 分区中源文件的硬链接。原因很简单,在不同的分区中文件的 inode-number 不再是唯一的。

    参考

    中国大学 MOOC | Linux系统管理 | 主题04 | 小节 2 | 创建文件链接

    展开全文
  • 链接Linux文件系统的基本组成部分之一。在本教程分享了如何使用ln命令创建链接硬链接链接是对另一个文件的引用。链接为同一个文件赋予多个名称,并允许它们同时存在于两个或多个位置。链接有两种类型:软...

    软链接是Linux文件系统的基本组成部分之一。在本教程分享了如何使用ln命令创建软链接和硬链接。

    链接是对另一个文件的引用。链接为同一个文件赋予多个名称,并允许它们同时存在于两个或多个位置。

    链接有两种类型:

    软链接或符号链接:这只是原始文件的快捷方式。

    硬链接:这指向原始文件的存储位置。

    此图显示了两种类型的链接如何工作:

    dd415020b428bc59ebaedafb1f99c61f.png

    硬链接和软链接都是使用ln命令创建的。

    在本教程中,我将向您展示如何使用ln命令在Linux中创建各种类型的链接。

    ln命令的示例

    ln命令的语法很简单:

    ln [option] target_file link_name

    让我向您展示一些使用ln命令在Linux中创建链接的示例。

    1.创建指向文件的硬链接

    要创建文件的硬链接,可以使用ln命令,而无需使用以下任何选项:

    ln target_file link_name

    9f139ca3b8e91b81e13c91df9f92b219.png

    2.创建到文件的软链接

    要创建指向文件的符号链接,请将该选项-s与目标文件名和链接名一起使用

    ln -s target_file link_name

    3d8b3be3adcdca96ec4e16ef24087219.png

    大多数Linux终端将以不同的颜色以及指向的目的地显示软链接。

    您还会注意到,长列表视图中的文件以链接开头l而不是通常的链接开头-。

    即使终端没有以不同的颜色显示软链接,您也可以通过这种方式识别链接。

    3.创建到目录的软链接

    创建到目录的软链接与创建到文件的符号链接相同。您只需要将目标文件名/路径替换为目录名/路径。

    ln -s target_directory link_name

    39d941b5292f5be2caf8aeba4457333a.png

    您会注意到,在Linux终端中,软链接和硬链接的颜色通常是不同的。硬链接到目录是不可能的(通常)。

    4.更新现有的软链接(或硬链接)

    您可以覆盖现有链接。默认情况下,如果您尝试使用现有链接指向新文件,则会引发错误:

    ln: failed to create symbolic link 'soft-link-to-file': File exists

    ln命令为此有两个选项:

    -i:交互模式询问您是否要覆盖现有链接。

    -f:强制模式仅更新现有链接而没有任何确认。

    假设您要强制更新符号链接。您可以执行以下操作:

    ln -sf new_file existing_soft_link

    注意添加sfor软链接,否则您会将软链接转换为硬链接。

    074c5d6ae7ba0a0af65726ab58f20eb6.png

    温馨提示:通过一系列链接获取原始文件

    通常,将ls命令与该-l选项一起使用时,它将显示其指向的文件。

    但是,如果有链接链,则不会显示原始文件。例如,您创建一个文件链接,然后创建另一个链接到第一个链接。在长列表中,第二个链接将指向第一个链接。

    要从链接链中查找原始文件,可以readlink -f按以下方式使用:

    readlink -f soft_link

    该-f选项代表“跟随”,如“跟随链条”。

    此图更好地说明了示例:

    5f5ed37c74d750e0c8d255ac3611ba4a.png

    为什么需要链接?

    既然您知道如何创建链接,那么简单介绍为什么我们需要链接?它们的实际用途是什么?

    可能有几个用例。假设您下载了包含其代码和可执行文件的软件。您将整个内容保留在/opt目录中。但是要从任何地方运行该程序,您需要将其可执行文件放在/usr/bin目录中。

    如果将可执行文件移到该目录,则它可能无法工作,因为它需要访问某些代码,并且无法从/usr/bin目录中找到这些文件的路径。您可以在这里在/usr/bin目录中创建指向该可执行文件的链接。

    这样,该程序可以在系统上的任何位置运行,并且该程序的可执行文件保留在其原始程序文件夹中。

    链接是Linux的重要组成部分。您会发现它们已在系统中的许多地方使用。只需查看/lib目录,您将看到大量的软链接。

    展开全文
  •  链接(hard link)是Unix系统最早的创建链接的方式。  默认情况下每个文件都有一个链接,创建链接时,实际上是创建了附加的入口,当且仅当指向文件的所有链接都被删除之后文件才被真正删除,即数据块被清理...
  • linux创建和删除软、硬链接

    千次阅读 2021-05-15 16:19:44
    Linux系统,内核为每一个新创建文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。链接是一种在共享...
  • [转]linux创建链接文件的两种方法

    千次阅读 2021-05-11 19:42:50
    转自 http://topic.csdn.net/u/20120930/11/3d9e5a0d-6dad-4dee-8a9d-6ad50f52f69e.html?r=79806698一、 链接的分类:链接分为软链接硬链接:1> 软链接:软链接又叫符号链接,这类文件包含了另外一个文件的路径...
  • 有时Linux用户们为了使用方便,会想给电脑文件或目录创建链接硬链接。不过有些用户不清楚该怎么给这些文件或目录创建链接硬链接该怎么办呢?别急,现在小编就来教你解决的方法。解决方法:当我们需要在...
  • Linux中的符号链接是什么,为什么使用它?符号链接(也称为符号链接或软链接)是一种特殊类型的文件,它只是指向...对链接文件内容执行的更改将更改实际目标文件的内容。lrwxrwxrwx 1 abhishek abhishek 23 Jul 2 08:...
  • Linux-硬链接和软链接

    千次阅读 2021-05-15 11:47:13
    链接连接指通过索引节点来进行连接。在Linux的文件系统,保存在磁盘分区的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode ...软链接软链接文件有点类似于Windows的快捷方式。它实际上是一个...
  • Linux链接硬链接

    千次阅读 2022-03-14 12:39:51
    Linux硬链接的概念及使用
  • Linux 系统如何创建符号链接

    千次阅读 2021-05-11 02:50:37
    什么是 Linux 系统符号链接以及符号链接的用途符号链接(也称为软链接)是一种特殊类型的文件,它只是指向另一个文件或目录,就像Windows的快捷方式一样。 创建符号链接就如同给文件创建别名一样。如果尝试访问符号...
  • linux 建立链接文件命令

    千次阅读 2021-06-22 14:46:35
    ln 命令用于给文件创建链接,根据 Linux 系统存储文件的特点,链接的方式分为以下 2 种: 软链接:类似于 Windows 系统文件创建快捷方式,即产生一个特殊的文件,该文件用来指向另一个文件,此链接方式同样适用...
  • Linux中常常会用到链接,就像在PC电脑的桌面快捷方式一样。 1. 使用方式:ln [option] source_file dist_file  -f 建立时,将同档案名删除  -i 删除前进行询问   -s 软链接,否则默认为硬链接   n -s...
  • Linux建立软链接硬链接

    万次阅读 多人点赞 2019-03-17 18:56:12
    说明:软链接仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效。 1.软链接,以路径的形式存在。类似于Windows操作系统的快捷方式 2.软...
  • linux创建链接命令

    千次阅读 2021-09-22 21:30:59
    linux创建链接软命令: 具体用法是:ln -s 源文件 目标文件。 (如树莓派的wiringPi库的建立软链接命令) ln -s libwiringPi.so.2.52 libwiringPi.so ln : 指令 -s:参数 libwiringPi.so.2.52:要被链接的
  • Linux中硬链接与软链接

    千次阅读 2021-05-15 15:50:02
    一、链接(一)什么是链接链接是指通过索引节点来进行链接。在Linux中一个索引节点可能被多个文件名指向,这样就会...链接的原理可以简单使用下图解释:(二)实战链接的创建通过 “ln 源文件 硬链接文件”来...
  • linux硬链接和软链接

    千次阅读 2022-06-15 23:29:58
    linux硬链接和软链接
  • Linux创建符号链接(软链接

    千次阅读 2021-07-19 14:10:51
    如果删除链接对应的源文件,则硬链接文件仍然存在,而且保存了原有的内容,这样可以起到防止因为误操作而错误删除文件的作用。由于链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不...
  • 因此,在Linux系统,采用了现在常用的两种文件共享方式——基于索引节点的共享方式(硬链接)和基于符号链的共享方式(软链接)。 一、基于索引节点的共享方式(硬链接) 1、前言 在讲这两种链接方式之前,我们先...
  • Linux下软链接创建硬链接创建

    千次阅读 2019-09-05 21:43:45
    注意:创建的软链接的大小与要被创建文件的绝对路径的大小有关。 也可以给目录创建快捷方式,创建方式是一样的。 硬链接创建 硬链接相当于给原来的文件做了一个备份。注意,硬链接得这样理解。 先说硬链接创建...
  • linux中软链接硬链接

    千次阅读 2022-05-23 10:01:40
    软链接:ln -s 源文件或目录 链接文件或目标位置 ln -s 创建软链接 相当于创建了一个快捷方式 软链接建立时原始文件可以不存在 如果源文件被删除 那么软链接失效 如果删除源文件之后又重新建立源文件,那么软链接...
  • 问题1:我创建了一个硬链接文件,但是我不知道放在那里了,请问怎么办?思路:查找文件可以利用find命令。链接的特性,不会跨文件系统,所以源文件在哪个文件系统,就在那里找硬链接文件和源文件具有相同的inode...
  • linux系统有一种文件叫做链接文件,可以为解决文件的共享使用。链接的方式可以分为两种,一种是链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link)。 一、基本概念 1、链接 开始之前,...
  • 链接Linux中常用的命令,它的功能是某一文件在另外一个位置建立一个同步的链接,相当于C语言的指针,建立的链接直接指向源文件所在的地址,软链接不会另外占用资源,当同一文件需要在多个位置被用到的时候,就...
  • linux软连接和硬链接

    千次阅读 2022-04-03 16:59:17
    创建链接 命令:ln 原义:link 语法: ln 【-s】 【源文件】 【目标文件】 若加上 - s选项则是创建软链接,不加是创建链接 /* 创建软连接 */ ln -s ./pip3.6 ./pip /* 创建链接 */ ln ./pip3.6 ./pip 查看文件...
  • Linux下的链接文件详解

    千次阅读 2021-05-09 08:37:29
    几个基本概念Linux下的链接文件可以分为链接(hard link)与软链接(soft link)。要理解它们,必须先要理解几个基本概念。inode文件除了纯数据本身之外,还必须包含有对这些纯数据的管理信息,如文件名、访问权限、...
  • Linux ln命令:在文件之间建立链接硬链接和软链接)详解版 如果想要说清楚ln 敏玲,则必须先解释一下ext 文件系统(Linux 文件系统)是如何工作的,了解linux 的话就会知道,分区的格式化就是写入文件系统,而我们...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 466,133
精华内容 186,453
热门标签
关键字:

linux中创建硬链接文件