精华内容
下载资源
问答
  • (值得注意的是,文件名与文件本身不是直接映射起来的,中间隔着 inode)内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个唯一的inode号。文件属性保存在索引结点里,在访问文件时...

    Linux 文件系统把硬盘分为三个部分:超级块、inode 列表、数据区

    inode 指示:该文件的数据存放在数据区的哪些块内。因为这个“映射”关系不能变更,因此,inode 相当于代表着文件本身。(值得注意的是,文件名与文件本身不是直接映射起来的,中间隔着 inode)

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

    链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。

    Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。

    硬链接

    硬链接相当于是一个指针,指向文件索引节点,系统并不为它重新分配inode。用 ln 命令来建立硬链接。

    当我们创建了一个文件的硬链接时,硬链接会使用和文件相同的inode号,此时我们发现,原来的文件的inode连接数由最初的1变为了2,实际上硬链接和文件使用了相同的inode,只不过是inode连接数增加了,删除文件不会影响硬链接,硬链接的inode数会从2变为1

    #不管是硬链接还是软连接,源文件必须先存在

    [root@tanbaobao thy]#touch codefile.txt

    [root@tanbaobao thy]#vi codefile.txt

    #索引数量为1

    [root@tanbaobao thy]#ls -il

    总用量 8

    922461 -rw-r--r-- 1 root root 6 12月 18 11:04codefile.txt#默认不加任何参数是创建硬链接,且参数二必须是要创建的链接文件

    [root@tanbaobao thy]#ln codefile.txt h_codefile.txt

    #查看硬链接,会发现它们的inode索引号是相同的,但索引的数量会加1

    [root@tanbaobao thy]#ls -il

    总用量 12

    922461 -rw-r--r-- 2 root root 6 12月 18 11:04codefile.txt922461 -rw-r--r--2 root root 6 12月 18 11:04h_codefile.txt#删除源文件并不会影响硬链接(只有将所有指向文件内容的指针,也即链接数减为0时,内核才会把文件内容从磁盘上删除。)

    [root@tanbaobao thy]#rm -rf codefile.txt

    [root@tanbaobao thy]#ls -li

    总用量 8

    922461 -rw-r--r-- 1root root 6 12月 18 11:04 h_codefile.txt

    PS:硬链接,只能应用于文件,而不能应用于目录,而且不能跨文件系统(即分区)。不可以在不同文件系统的文件间建立链接。

    软连接(符号链接)

    符号链接是对一个文件的间接指针。硬链接直接指向文件的i节点。

    软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。甚至可以跨越不同机器、不同网络对文件进行链接。建立软链接只要在ln后面加上选项 –s。

    在创建文件的软链接时,软链接会使用一个新的inode,所以软链接的inode号和文件的inode号不同,软链接的inode里存放着指向文件的路径,删除文件,软链接也无法使用了,因为文件的路径不存在了;当我们再次创建这个文件时(文件名与之前的相同),软链接又会重新指向这个文件(inode号与之前的不同了),而硬链接不会受其影响

    #先创建源文件

    [root@tanbaobao thy]#touch srcfile.txt

    [root@tanbaobao thy]#ls -l

    总用量 4

    -rw-r--r-- 1 root root 38 12月 18 11:01srcfile.txt#创建软连接(参数二必须是软连接文件名)

    [root@tanbaobao thy]#ls -l

    总用量 4

    -rw-r--r-- 1 root root 38 12月 18 11:01srcfile.txt#查看(软连接的索引是不相同的,且索引数量都为1,并且软连接文件名后边会指向链接的源文件)

    [root@tanbaobao thy]#ls -il

    总用量 8

    922457 lrwxrwxrwx 1 root root 11 12月 18 11:02 desfile.txt ->srcfile.txt922460 -rw-r--r-- 1 root root 64 12月 18 11:03srcfile.txt#删除源文件,软连接就会失效(因为索引指向的源文件路径已经不存在了)

    [root@tanbaobao thy]#rm -r srcfile.txt

    rm:是否删除普通文件 "srcfile.txt"?y

    [root@tanbaobao thy]#ls -il

    总用量 4

    922457 lrwxrwxrwx 1 root root 11 12月 18 11:02 desfile.txt -> srcfile.txt

    bbef9b623d55e5238f33f2118fc85dbf.png

    查看软连接文件会显示没有该文件:

    c6064fd32724983cffcdabc4499beed8.png

    重新创建之后又会恢复,因为路径指向的文件存在:

    [root@tanbaobao thy]#touch srcfile.txt

    [root@tanbaobao thy]#ll -i

    总用量 4

    922457 lrwxrwxrwx 1 root root 11 12月 18 11:02 desfile.txt ->srcfile.txt922458 -rw-r--r-- 1 root root 0 12月 18 11:43 srcfile.txt

    8c295c7c739653ac549309b257ab5b81.png

    说明:可以创建多个链接文件,但是不能在软连接文件上创建链接文件,这样会导致断裂,形成混乱的链接链

    区别:

    挂载点

    只能在同种存储媒体上的文件之间创建硬链接(Hard Link),不能在不同挂载点下的文件间创建硬链接,对于后一种情况,可以使用软链接;(区分不同挂载点与同一挂载点不同目录)

    目录

    软连接就相当于 win 中的快捷方式即如果软链接一个目录只是一个目录的快捷方式到指定位置,操作系统找这个快捷方式会直接找到真实目录下的文件。但是硬链接的话,相当于镜像的方式,创建一个目录的硬链接之后,操作系统需要把这个目录下所有的文件都要做一次硬链接(复制一份过去),这样操作系统在访问这个链接的时候要不断去遍历,大大增加复杂度,而且很容易进入死循环。

    硬链接不能对目录创建受限于文件系统的设计。Linux 文件系统中的目录均隐藏了两个特殊的目录,当前目录和父目录。其实是两个硬链接,若系统运行对目录创建硬链接,则会产生目录环。

    总结:

    1)硬链接原文件&链接文件共用一个inode号,说明他们是同一个文件;而软链接原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件;

    2)在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系,就像文件被复制了一份一样;

    3)链接数目是不一样的,软链接的链接数目不会增加,硬链接会相应的加一;

    4)文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的,而这里软链接显示的大小与原文件就不同了。

    展开全文
  • 在本教程分享了如何使用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目录,您将看到大量的软链接。

    展开全文
  • 这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln-s 源文件 目标文件。当 我们需要在不同的目录,用到相同的...

    这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln-s 源文件 目标文件。

    当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln-s /bin/less /usr/local/bin/less-s 是代号(symbolic)的意思。

    这 里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接 和硬链接两种,软链接就是ln-s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s,它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

    不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。-f :链结时先将与 dist 同档名的档案删除-d :允许系统管理者硬链结自己的目录-i :在删除与 dist 同档名的档案时先进行询问-n :在进行软连结时,将 dist 视为一般的档案-s :进行软链结(symbolic link)-v :在连结之前显示其档名-b :将在链结时会被覆写或删除的档案进行备份-S SUFFIX :将备份的档案都加上 SUFFIX 的字尾-V METHOD :指定备份的方式--help :显示辅助说明--version :显示版本

    【删除链接】

    有创建就有删除   rm -rf symbolic_name 注意不是rm -rf symbolic_name/

    【硬连接】

    硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

    【软连接】

    另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。2.通过实验加深理解

    [oracle@Linux]$ vi test.log #创建一个测试文件f1

    [oracle@Linux]$ ln test.log test1.log #创建f1的一个硬连接文件test1.log

    [oracle@Linux]$ ln -s test.log test2.log #创建f1的一个符号连接文件test2.log

    [oracle@Linux]$ ls -li #-i参数显示文件的inode节点信息

    两种链接的区别:

    硬链接文件有两个限制1)、不允许给目录创建硬链接;2)、只有在同一文件系统中的文件之间才能创建链接,而且只有超级用户才有建立硬链接权限。

    对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。

    这时,系统就“忘记”了它曾经是硬链接文件。而把他当成一个普通文件。

    那么我们就可以这样理解:硬连接指通过索引节点来进行的连接,其作用是允许一个文件拥有多个有效路径名,能够达到误删除的作用。

    其原因是因为对应的文件的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它

    的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。文件才会被真正删除。

    注:保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index即I节点)。

    软链接没有硬链接以上的两个限制,因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。但是软链接的缺点在于:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。

    展开全文
  • Linux创建连接命令 ln -s创建软连接 ln -s 是linux中一个非常重要命令,一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s, 具体用法是:ln -s 源文件 目标文件。...

    Linux创建连接命令 ln -s创建软连接

    ln -s 是linux中一个非常重要命令,一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,
    具体用法是:ln -s 源文件 目标文件。
    当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下
    用ln命令链接
    (link)它就可以,不必重复的占用磁盘空间。
    
    例如:ln -s /bin/less /usr/local/bin/less

    参考:https://www.cnblogs.com/zhangna1998517/p/11347364.html

    展开全文
  • cp 命令 基本用法: cp source destination 该命令将source复制至一个新文件,叫destination。注意,这种复制,是真实将源文件内容拷贝了一份,存在了物理存储空间。 我们使用命令ls -il来显示文件的长列表,会发现...
  • 一、课前声明 ...ln -s [原文件或目录] [链接名] (功能描述:给原文件创建一个链接) 链接命令存放在/bin/ln中。 2.经验技巧 删除链接: rm -rf 链接名,而不是rm -rf 链接名/ 查询:通过ll就可
  • Linux命令ln命令可以生成链接和硬链接,也可叫做符号链接和实体链接。 有兴趣深入理解的可以查阅相关文档,一般的读者只需记住以下几点即可:1.不管是链接还是硬链接都不会额外增加磁盘空间(虽然实际情况可能会...
  • Linux中的链接命令笔记(链接和软连接) 文件处理命令:ln 英文原意:link 所在目录:/bin/ln 可执行用户:所有用户 语法: ln 【-s】 【源文件】 【目标文件】 若加上 - s选项则是创建软链接,不加是创建链接 ...
  • 当需要在不同的目录,...实现此功能的命令是ln,它的功能是为某一个文件在另外一个位置建立一个同步的链接,参数为-s(软链接)具体用法:ln -s 源文件 目标文件例如创建文件软连接:ln -s /alidata/test.php /mnt/te...
  • Linux有两种连接文件:符号连接(软连接)和硬链接,符号链接类似Windows下的快捷方式。硬链接通过文件系统的inode连接来产生新文件名,而不是产生新文件。 inode:记录文件属性,一个文件一个inode。inode相当于文件...
  • linux创建连接命令

    2021-05-09 04:47:29
    linux系统中连接文件或目录需要通过...1.linux创建连接命令——ln命令功能说明:连接文件或目录。语法:ln [-bdfinsv][-S ][-V ][--help][--version][源文件或目录][目标文件或目录] 或 ln [-bdfinsv][-S ][-V ][--h...
  • Linux创建软链接和硬链接的命令 link oldfile newfile # 硬链接 ln oldfile newfile # 硬链接 ln -s old.file soft.link # 软链接 ln -s old.dir soft.link.dir # 软链接
  • 以nginx为例,nginx的启动文件位于/usr/local/nginx/...这样该目录下就会出现这样的连接: 之后就可以在这个位置时通过如下命令来操作nginx了 ./nginx -s reload 重启 ./nginx -s stop 关闭 ./nginx 开启 ...
  • 链接和软连接

    2021-03-06 04:05:44
    硬连接硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索 引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般...
  • mklink /j C:\Users\Admin\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc f:\DATA\WSL-ubuntu\
  • linux服务器 ln命令详解(创建软链接,复制软连接)ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接,分为软链接、链接。软链接相当于windows的快捷方式,下面是使用方法...
  • 图示软硬链接的区别有关链接的总结具有相同inode节点号的多个文件互为链接文件;...创建硬链接命令 ln 源文件 链接文件;链接文件是普通文件,可以用rm删除;对于静态文件(没有进程正在调用),当...
  • 如果对目录创建软链接,方法中第三个参数需要传'dir'(虽然第三个参数只在windows下生效,这样传递可以确保跨平台不会出现问题): fs.symlink(target,path,'dir') 上面讲解了 linux Node.js 创建软链接的两种方式,...
  • linux 创建连接命令 ln s 链接这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件。当我们...
  • 软连接符号链接(也被称为“软连接”)需要使用带 -s参数(symbolic)的 ln 命令创建下面这个命令最简单的形式,这条命令给目标文件IBLOGER取了一个别名LINK_IBLOGER,如下代码ln-sIBLOGERLINK_IBLOGER下面这个例子...
  • linux环境下创建软链接、链接命令详解
  • Linux创建软连接

    2021-07-13 11:37:13
    软连接的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,         具体用法是:ln -s 源文件 目标文件       ...
  • 本篇文章详细介绍了linux软连接和硬链接,废话不多说,接着往下看把。一 链接文件Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【软连接】...
  • linux 创建软连接 ln -s命令

    千次阅读 2020-12-29 22:04:03
    ln -s /dev/test/ /root/ 表示将/dev/test/目录下的所有文件链接到/root/目录下面,可以在/root/目录下直接访问到/dev/test/目录下的所有文件
  • 创建符号链接的方法是: ln -s 源文件/目录名 符号链接名,例如 ln -s /etc/apache2/sites-enables ~/webcfg 如果符号链接的源是一个目录,那么就用普通的cd命令即可进入,例如: cd ~/webcfg ...
  • 导读ln命令可以生成链接和硬链接,也可叫做符号链接和实体链接。 有兴趣深入理解的可以查阅相关文档,一般的读者只需记住以下几点即可。ln命令可以生成链接和硬链接,也可叫做符号链接和实体链接。 有兴趣深入...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 716,627
精华内容 286,650
关键字:

创建软连接和硬连接的命令