精华内容
下载资源
问答
  • Linux 软连接与硬连接的区别

    千次阅读 2020-07-30 00:48:43
    一、软连接(快捷方式) ln -s …/file file.s 1.软连接file.s的大小4字节,其内容是访问的路径 file.soft的大小为6字节,因为其内容(路径)不一样。 2.在windows下,快捷方式移动位置后仍可使用,而在linux不一定...

    一、软连接(快捷方式) ln -s …/file file.s

    1.软连接file.s的大小4字节,其内容是访问的路径
    file.soft的大小为6字节,因为其内容(路径)不一样。

    在这里插入图片描述

    2.在windows下,快捷方式移动位置后仍可使用,而在linux不一定能使用。
    在这里插入图片描述

    3.若是绝对路径的软连接即可使用,如下图。故为保证软连接可以任意搬移,创建时务必对源文件使用绝对路径。

    在这里插入图片描述

    4.源文件的读写权限和软连接的读写权限不一样。

    二、硬链接 ln …/file file.h 无需参数

    1.创建一个硬链接,硬链接的数量会增加
    在这里插入图片描述

    2.硬链接的特征:修改任意一个硬链接,其他文件也会发生变化,即同步。
    如在file 后追加2,打开file.h,可以看到file.h也变化了。
    在这里插入图片描述

    3.linux系统如何实现的硬链接?
    (1)指针可以吗?同一个地址指向3个文件,思路可行。但是指针是内存概念,文件是存储在磁盘上的。
    (2)使用的是inode 。硬链接使用相同的inode

    在这里插入图片描述

    4.删除时,是什么原理呢?
    删除时,使用的是硬链接计数,即硬链接计数减一
    在这里插入图片描述

    总结:1. 操作系统给每一个文件赋予唯一的inode,当有相同inode的文件存在时,彼此同步。 2.删除时,只将硬链接计数减一,减为0时,inode被释放。

    展开全文
  • 软链接和硬连接

    千次阅读 2019-06-29 20:21:04
    (1)软连接链接的区别? (2)链接支持跨文件系统不?为什么? (3)不同文件系统是如何实现传输的? 不错 二 文件系统的相关概念 传统的磁盘和文件系统应用:一个分区就能被格式化成一个文件系统! ...

    一  问题引入

    (1)软连接和硬链接的区别?

    (2)硬链接支持跨文件系统不?为什么?

    (3)不同文件系统是如何实现传输的?

    不错

    二  文件系统的相关概念

    传统的磁盘和文件系统应用:一个分区就能被格式化成一个文件系统

    现在:LVM和磁盘阵列的新技术,能够将一个分区格式化成多个文件系统,也能将多个分区合并成一个文件系统(LVM、RAID)

    原因:一个分区对应不同的逻辑卷,进而格式化成不同的分区!

    总结不再针对分区来格式化了,通常称乎一个可被挂载的数据为一个文件系统

    Ext2(linux second extended file system ,Ext2fs)

    三  文件系统是如何运行的

    核心:与文件系统的文件数据有关

    操作系统的文件数据:文件的实际内容相关属性(文件的权限rwx和文件的属性-->所有者、用户组其他人、时间、大小等)

    问题1:文件系统将这两部分的数据放置在什么位置?

    权限和属性放置在inode;实际内容放置在data block

    inode:index node ,记录文件的属性一个文件占用一个inode同时记录此文件的数据所在的block号码(操作数据的关键)!

    block:实际记录文件的内容,若文件太大,会占用多个block!

    索引式文件系统:indoe记录的是记录文件数据顺序全部block,典型的就是ext2

    FAT:文件系统并没有inode的存在,它的每个block号码都记录在前一个block号码中,读取比较费尽!

    FAT问题:同一个文件数据写入的block分散太过离散,磁盘可能多转几圈才能完整的读取这个文件的内容!

    碎片整理:将同一文件所属的block汇合在一起,读取比较容易,主要发生在Windows的系统中!

    ext4的block大小默认是4KB

       Linux新建一个目录和一个文件相应的分配

    创建目录:会分配一个inode与至少一块block给该目录

           inode:记录该目录的相关权限和属性,并记录分配到的那块block

           block:目录下的文件名与该文件名所占用的inode号码(二者的映射),这就是目录的内容

    理解:文件名就是inode的别名,通过文件访问,最终还是通过inode来访问数据!

    创建文件:分配一个inode与相对于该文件大小的block数量给文件

    明确:inode本身不记录文件名,文件名的记录是在目录的block中!

      挂载点的几点注意事项

    (1)挂载点一定是目录

    (2)挂载点是进入该文件系统的入口

    六   常见的文件系统

    (1)传统的文件系统:ext2/FAT/iso(光盘)

    (2)日志文件系统:ext3/ext4/NTFS/XFS

    (3)网络文件系统:NFS/SMBFS

    #(1)查看linux支持的文件系统
    
    ls -l /lib/modules/$(uname -r)/kernel/fs
    
    #(2)系统已经加载到内存中支持的文件系统
    
    cat /proc/filesystems

    文件系统的类型

    (4)linux VFS

    问题1:linux的内核是如何管理这些认识的文件系统?

    答:通过一个名叫Virtual Filesystem Swith(虚拟文件系统 VFS)的内核功能来读取文件系统!

    用户并不需要知道每个分区上头的文件系统是什么,VFS会主动帮我们做好读取的操作!

    七  硬连接和软连接

    已知:由于一个文件占用一个inode,所以同一个文件系统的某个inode只会对应到一个文件内容

    判断:可以通过判断inode号码来确定不同的文件名是否是相同的文件

    ###############

    硬链接:就是同一个文件使用了多个别名,他们有共同的 inode,只是某个目录下新建一条文件名连接到某个inode的关联记录!

    特点

          (1)不能跨文件系统

            原因:首先不同的文件系统的文件管理方式不同,甚至有些文件系统不是索引文件系统,并不一定两个文件系统的inode有相同的含义。再者即使有相同inode含义,硬链接的几个文件,具有相同的inode号码。不同文件系统中,也可能有使用该inode号的文件,这将产生矛盾

          (2)不能连接到目录

            原因:因为如果使用 hard link 链接到目录时, 链接的数据需要连同被链接目录下面的所有数据都创建链接,举例来说,如果你要将 /etc 使用实体链接创建一个 /etc_hd 的目录时,那么在 /etc_hd 下面的所有文件名同时都与 /etc 下面的文件名要创建 hard link 的,而不是仅链接到 /etc_hd 与 /etc 而已。 并且未来如果需要在 /etc_hd 下面创建新文件时,连带的/etc下面的数据又得要创建一次 hard link ,因此造成环境相当大的复杂度。 所以目前 hard link 对于目录暂时还是不支持的!

    ############

    软连接:类似于Windows的快捷键,你可以将windows某个应用的指向改变,例如QQ链接到火狐浏览器!

    过程:会创建一个新文件,文件的内容是指向它连接的那个文件的文件名,readlink来读取,和源文件指向不同的inode!

    特点:跨文件系统(不是通过inode)、可以连接到目录!

    注意:如果链接到目录,进入该链接目录就是进入真实的目录,进行相关的操作就是操作源文件!

    链接文件:操作软连接不影响真实的文件,但是操作真实的文件会影响软链接(位置、内容)

    ls -i 权限后面字段含义:文件被记录的次数,或者说是有多少个文件连接到这个inode!

    硬连接和软连接的区别

    还可以

    展开全文
  • Linux硬连接和软连接详解

    千次阅读 2017-11-16 17:02:55
    Lnux也有类似于windows下的快捷方式,这种快捷方式在linux下称作硬连接(hard link)和软连接(symbolic link,又称作符号链接)。创建链接文件 创建linkfile.txt文件[root@localhost tmp]# touch linkfile.txt ...

    Lnux也有类似于windows下的快捷方式,这种快捷方式在linux下称作硬连接(hard link)或软连接(symbolic link,又称作符号链接)。

    创建链接文件
    创建linkfile.txt文件

    [root@localhost tmp]# touch linkfile.txt
    [root@localhost tmp]# echo 'testlink' > linkfile.txt 

    创建硬连接

    [root@localhost tmp]# ln linkfile.txt hardlink

    创建软连接

    [root@localhost tmp]# ln -s linkfile.txt softlink

    读取文件内容,可以看出三个文件的内容都是一样的

    [root@localhost tmp]# cat hardlink 
    testlink
    [root@localhost tmp]# cat softlink 
    testlink
    [root@localhost tmp]# cat linkfile.txt 
    testlink

    通过链接文件修改文件内容

    [root@localhost tmp]# echo 'testlink2' >> hardlink 
    [root@localhost tmp]# cat linkfile.txt 
    testlink
    testlink2
    [root@localhost tmp]# echo 'testlink3' >> softlink 
    [root@localhost tmp]# cat linkfile.txt 
    testlink
    testlink2
    testlink3

    可以看出,通过修改链接文件内容,源文件的内容也发生了改变。这就是链接文件的作用,链接文件基本上代表了源文件,通过链接文件可以查看修改源文件内容,也可以通过链接文件修改源文件属性等等。

    硬连接和软连接有什么不同?
    实际上软连接更接近windows的快捷方式,可以看下面的操作。

    这里写图片描述

    我将源文件给删除了,通过硬连接依然可以读取文件内容,软连接则显示文件不存在(源文件被删除,软连接文件的颜色都发生了改变)。这就奇怪了,源文件都删除了,为啥还可以读取文件内容?这涉及到linux的文件系统原理,linux中一个文件是由inode和block来存储的,block中存放文件内容,inode存放文件属性和block的位置。当用户读取文件内容的时候,系统会先找到该文件对应的inode,从inode中获取该用户是否有权限读取文件内容,如果有权限,则通过inode中存放的block位置找到相应的block,获取文件的内容。我这里只是简单的介绍linux的文件系统,详细内容推荐去看下linux相关书籍。

    我们再重复最开始的操作,创建源文件,创建链接文件。

    [root@localhost tmp]# rm -rf testlink.txt 
    [root@localhost tmp]# rm -rf hardlink 
    [root@localhost tmp]# rm -rf softlink 
    [root@localhost tmp]# touch testlink.txt
    [root@localhost tmp]# ln testlink.txt hardlink
    [root@localhost tmp]# ln -s testlink.txt softlink
    [root@localhost tmp]# ll -i testlink.txt hardlink softlink 
    50801629 -rw-r--r-- 2 root root  0 Nov 16 15:54 hardlink
    50801663 lrwxrwxrwx 1 root root 12 Nov 16 15:54 softlink -> testlink.txt
    50801629 -rw-r--r-- 2 root root  0 Nov 16 15:54 testlink.txt

    其中ll -i 指令可以查看文件的inode(第一列为inode编号)。可以看到hardlink和testlink.txt对应的是同一个inode,而softlink则占用了另外一个inode。软连接是指向源文件的,所以当删除源文件后,由于无法找到源文件的inode,自然就无法读取源文件的内容。但是对于硬连接来说,硬连接和源文件共享同一个inode,删除了源文件,inode和对应的block并没有被删除,所以依然可以通过硬连接来读取源文件的内容。

    这样看来,硬连接貌似更安全。删除了源文件,依然可以通过硬连接来查看源文件的内容。但是由于硬连接的限制比较多,比如不能给文件夹创建硬连接。所以实际上,软连接用得更多一些。

    给文件夹创建软连接

    [root@localhost tmp]# mkdir dirlinktest
    [root@localhost tmp]# ln dirlinktest/ dirhardlink
    ln: ‘dirlinktest/’: hard link not allowed for directory --不允许给文件夹创建硬连接
    [root@localhost tmp]# ln -s dirlinktest/ dirsoftlink
    展开全文
  • 软连接和硬连接区别

    2019-11-10 15:05:56
    今天我们来理顺下关于软连接和硬连接的区别,已经完全清楚的大拿请略过。 区别概览 区别分为以下几点: 1.本质:硬连接,同一个文件多个名字;软连接则是不同文件。 2.跨分区:硬连接不支持对目录创建,软连接支持...

    引言

    今天我们来理顺下关于软连接和硬连接的区别,已经完全清楚的大拿请略过。

    区别概览

    区别分为以下几点:
    1.本质:硬连接,同一个文件多个名字;软连接则是不同文件。
    2.跨分区:硬连接不支持对目录创建,软连接支持目录创建。
    3.相互关系:硬连接是平级的关系,一旦删除,硬连接数会减少,但是软连接是有依赖关系,连接文件依赖于源文件,有点类似Windows里面的快捷方式。
    4.inode号:硬连接数相同,软连接不同。
    5.路径:硬连接创建的是相对于当前工作目录的路径,而软连接创建的是相对于软连接文件的相对路径。
    6.文件类型:软连接为L
    7.软连接支持跨分区创建

    重点演示

    这里经常会有一个误区,我挑出来专门重点解释下,其余的都是一些系统化展示 ,这里就不赘述。
    软连接我们都知道,它是依赖于源文件,那么一旦原始文件丢失或者是路径丢失,都会导致软连接的文件打开出错,那么假设a1在/data, a1.link在/data/d1/d2, 那么我们怎么样书写格式能够让我们日后即使移动别的目录仍然能够调用也不存在出错呢?
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在data目录下
    ln -s ../../a1 d1/d2/a1.link
    a1的路径需要相对于软连接的地址来填写
    所以是相对路径
    因为软连接只会在d1/d2里面寻找a1
    所以需要告诉 a1是在d2返回…上一级d1 …上一级的data目录中
    因此就是 …/…/a1

    只要填写的是相对路径 那么以后只要a1和a1.link 移到相同的文件夹 同时层级相同的话
    那么就可以使用 ,但是如果填写的是绝对路径,那么一旦移走,那么上一级文件夹不同
    那就无法使用了.

    rm -rf a1.link 删除这个软链接 可用该语句删除软连接。

    结束语

    k 删除这个软链接 可用该语句删除软连接。

    结束语

    软连接 硬连接 两者的区别还是很分明的,因此在使用场景和使用细节上需要更加大胆和细心,这样才能够发挥出其作用。

    展开全文
  • Link Shell Extension创建硬连接之后,删除硬连接的任何副本(即连接点,包括最早的源文件)只会将文件系统对文件数据的引用减一,只有删除所有的硬连接时,才能真正删除文件。这样是不是方便、安全了很多呢! 另外...
  • 主要介绍了详解linux软连接链接,链接与软链接是 Linux 文件系统中的一个重要概念,这里整理了详细的整理,有需要的小伙伴可以参考下。
  • 软连接和硬连接的区别

    千次阅读 2019-05-05 00:02:49
    1. 硬连接 文件系统以Inode号为标识,而同时也提供可读性强的字符串作为文件的标识。对应关系如下面这样: 当我们在利用名字操作文件时,文件系统会转换为Inode进行操作。那么硬连接就是有不止一个名字对应于...
  • 总结软连接和硬连接区别。 硬链接和软链接的区别 1、本质不同 硬链接:同一个文件,多个名称。 ​软链接:不同的文件。 2、跨分区 硬链接:不支持跨分区。 软链接:支持跨分区。 3、目录 硬链接:不支持对目录创建。...
  • 生成 软连接、硬连接 是通过命令行操作的 生成 替身、复制、拷贝 一般是通过finder进行操作的,右键某个文件,菜单中选择(其实复制也可以用命令cp来实现,跟finder操作是一个效果) 然后其中的 复制和拷贝 跟另外三...
  •  生成 软连接、硬连接 是通过命令行操作的    生成 替身、复制、拷贝 一般是通过finder进行操作的,右键某个文件,菜单中选择(其实复制也可以用命令cp来实现,跟finder操作是一个效果)    然后其中的 ...
  • 具体用法: ... 无论是软连接还是硬连接,直接删除即可 命令:rm -rf /目录/连接文件 说明: 不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。 ln的参数: ...
  • windows创建文件硬连接

    2018-09-03 19:26:17
    网上有说文件夹(目录)是不能创建链接的,实验确实创建成功了, 且解决了本人一个困扰良久的问题 使用情景举例: 安装了一个SVN客户端,只是在安装的时候忽略了选择安装路径,默认装在C盘Program Files下 在IDEA中使用...
  • 关于硬连接和符号连接的理解

    千次阅读 2016-07-26 00:45:29
    hard link (硬连接或者实际连接) 由于Linux里面每个文件都对应一个inode,而文件名是记录在目录的block里的,也就是说文件名和inode没有关系,这样就可以把多个文件名对应同一个inode,这就是hard link,简单的说...
  • ln软连接和硬连接的区别和联系

    千次阅读 2017-08-29 15:52:17
    连接有软连接和硬连接(hard link)之分的,软连接(symbolic link)又叫符号连接,更常用。符号连接相当于Windows下的快捷方式。它是用来干什么的?你可以将链接简单地理解为 Windows 中常见的快捷方式(或是 OS X 中的...
  • 索引节点、硬连接和连接计数 索引节点inode:   Linux为每个文件分配一个称为索引节点的号码inode,可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。系统是通过索引节点(而不是文件名)来定位...
  • Linux 命令之软硬连接的创建-ln

    千次阅读 2017-07-03 13:26:20
    Linux命令 ln linux软连接
  • linux 为什么要用硬连接

    千次阅读 2017-12-15 09:53:18
    linux 为什么要用硬连接 ---------------------------------------- author:hjjdebug date: 2017年 12月 15日 星期五 09:46:44 CST ---------------------------------------- 软连接是符号,是路径. 硬连接是别名. ...
  • linux软硬连接

    千次阅读 2018-09-16 16:30:35
    1.linux 创建连接命令 ln -s 软链接 这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s, 具体用法是:ln -s 源文件 目标文件。...
  • Linux中软连接和硬连接的区别

    千次阅读 2017-07-24 16:15:50
     首先我Linux链接分两种,一种被称为链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生链接。  我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 ...
  • 软连接硬连接
  • 电子政务-基于IO端口硬连接的电表.zip
  • 硬连接 硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般...
  • 硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的
  • centos的软硬连接ln

    千次阅读 2018-06-17 13:05:55
    1.ln -s 是软连接,而且后面跟的如果不是同目录文件,则都要用绝对路径,自己的i节点编号,存储的是文件信息2.ln---link缩写,不加代表的是硬连接,同i节点编号,同Block内存块3.硬连接会增加被引用计数,如下面的2,...
  • Linux中怎么看出文件是硬连接?

    千次阅读 2017-09-28 15:28:49
    所以 file3 是 file1 的链接也可以看作 file1 是 file3 的链接. 所以该数字大于 2 即说明该文件是链接.  补充说明: 1) 使用 ls   -i  # 可以与 ls -l 一起使用, 即 ...
  • 判断是否是,硬连接软连接

    千次阅读 2017-09-07 22:04:24
    ls - F 如果是软件,后面有@符号ls - d:判断硬连接,前面有d 转载于:https://blog.51cto.com/11077520/1963541
  • linux之ln命令以及软连接、硬连接

    千次阅读 2017-03-22 16:26:54
    ln命令详解命令格式ln [参数] [源文件或目录] [目标文件或目录]命令功能inux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 链接(hard link)与软链接(symbolic link),链接...
  • 连接 先说软连接,一个认为这个比较好理解,一个也是因为柿子专挑软的捏啊,哈哈,创建一个软连接的命令: 【ln -s 源文件名 软连接文件名】 使用ls命令查看文件信息可以验证一下,对文件和目录都可以创建软...
  • 硬连接

    2012-11-18 17:21:11
    硬连接是对于同一文件系统的一个文件的连接,节点是文件存在的唯一标识,在文件系统中是唯一的,但在不同的文件系统则有可能重复。这样的话,在不同文件系统中作链接时,是不能使用ln A B,应该用符号连接,即是软...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 168,567
精华内容 67,426
关键字:

硬连接