精华内容
下载资源
问答
  •  Linux使用的主流文件系统(如ext2,ext3等)都支持硬链接和符号链接。在这些文件系统中,文件与文件的内容并不是固定的 一一对应关系。保存文件内容的实体称为索引节点,每个索引节点由它的索引号代表,这些索引...

    硬链接:
     Linux使用的主流文件系统(如ext2,ext3等)都支持硬链接和符号链接。在这些文件系统中,文件与文件的内容并不是固定的
    一一对应关系。保存文件内容的实体称为索引节点,每个索引节点由它的索引号代表,这些索引号在整个文件系统中是不重复的。而用户
    看到的文件实质上仅是所在目录中的一条记录,这条记录包含了文件名称和一个索引号,这样就建立了文件名到索引节点的对应关系,这种

    关系被称为硬链接。

    符号链接:
     它可以看成是一个单独的文件,这个文件的内容是另一个文件的路径。

    mkdir [-p]:如果父目录不存在,则先创建父目录
    rmdir [-p]:同时删除父目录,rmdir -p a/b/c等价于同时删除a b c三个目录。

    展开全文
  • 深入理解硬链接和软链接 plumpeach(原作) UNIX和Linux都提供了链接命令ln。顾名思义,ln是将两个文件名(此说法不大准确)彼此链接起来,使得用户无论使用哪一个文件名都可访问到同一文件。这是我们用ln命令所要达到...
    深入理解硬链接和软链接 plumpeach(原作)



    UNIX和Linux都提供了链接命令ln。顾名思义,ln是将两个文件名(此说法不大准确)彼此链接起来,使得用户无论使用哪一个文件名都可访问到同一 文件。这是我们用ln命令所要达到的目的,但是从技术上讲,只有软链接是链接两个文件名,硬链接不在此列之中。要透彻理解链接的含义,就必须要分清文件与 文件名的区别。而要区分文件与文件名,我们就得知道文件系统如何管理文件。看似很普通的命令,其技术背景却一点儿也不简单。



    文件系统如何管理文件涉及范围太大,不可能也不必要在此全部叙述,但我们只需知道以下技术要点即可。在Linux中,文件的外延很大,我们常识中的“文 件”(例如一篇文档等)是文件, 目录、设备等也都是文件。这些文件种类繁多,数量巨大,万一重名怎么办,文件系统是如何区分并管理它们的呢?限制重名?这当然不行!我们来看看Linux 是如何做的。原来Linux的文件系统为每一个文件分配了一个我们称为索引节点(Inode)的数据结构,在这个索引节点内有一个全系统独一无二的索引节 点号,文件系统正是靠这个索引节点号来识别一个文件。另外文件系统用来管理文件的所有信息都包含在索引节点之中。



    好了,给每个文件分配一个唯一的number,文件系统就知道某个文件究竟是张三的文件还是李四的文件。但是文件的真正使用者——我们人类也要用该 number去识别文件吗?呵呵,若此为真,不知是人玩电脑还是电脑玩人罗。因此我们要用我们的方式去区分各个文件,给每一个文件起一好听易记的名字,同 一地点(即同一目录)不能有两个名字一样的文件。地点若不同,允许重名。至此,人类有人类识别文件的方法,电脑(文件系统)有电脑的做法,喔喔,问题又来 了,二者是要“水火不容”呢,还是“沟通无限”呢?这还用问,当然是后者啦。



    OK,既然要“沟通”,“链接”自然而然就提出来了。绕了个大圈,终于得以言归正传,有了上述的背景知识,不管是硬链接还是软链接对于我们来说已是板上鱼 肉。所谓硬链接(hard link, 也称链接[1])就是一个文件的一个或多个文件名。再说白点,所谓链接无非是把我们人类使用的文件名和电脑(文件系统)使用的节点号链接起来。因此我们可 以用多个文件名与同一个文件进行链接,这些文件名可以在同一目录或不同目录。一个文件有几个文件名(用ln命令实现多个文件名),我们就说该文件的链接数 为几。由定义可知,此链接数可以是1, 这表明该文件只有一个文件名。



    需要特别指出的是,在info ln的帮助信息中所说的硬链接与我的理解是有差别的,先看info是如何讲硬链接。“A "hard link" is another name for an existing file; the link and the original are indistinguishable.”(一个“硬链接”是一个现有文件的别名;链接文件与被链接文件是无法区别的。)哇喔,好象乱套了,谁对谁错?谁都 没错,二者角度不同。Info是就ln命令而论的“硬链接”,注意了,info中的硬链接也是打了双引号的,我估计此有特殊含义。“链接文件与被链接文件 是无法区别的”,没错,因为它们都指向同一个索引节点嘛。现在我与info主要差别在于,我认同而info不认同以下观点:对于一个拥有文件名的文件,在 没有用过ln命令的情况下,该文件仍存在硬链接,且链接数为1。理论需要实践来证明,在Linux中用ls –l命令获得该目录下文件的详细信息,格式如下:

    -rwxr-xr-x 1 root root 1024 Apr 30 17:06 filename

    上述格式中黑体加下划线的“1”代表文件名filename的文件的链接数为1。做个实验,在同一目录(不同目录也行)使用ln命令:

    ln filename filename2

    然后再使用ls –l命令,会得到下面的信息:

    -rwxr-xr-x 2 root root 1024 Apr 30 17:06 filename

    -rwxr-xr-x 2 root root 1024 Apr 30 17:06 filename2

    很明显,原来文件名为filename的文件现在拥有了两个文件名,链接数变为2, 除此之外其它一切信息都没变,所以说“链接文件与被链接文件是无法区别的”。下面的事实让我怀疑有没有必要用ln产生新的硬链接:无论使用任一文件名对文 件的任何改动,该文件的所有直接或间接[2]链接文件都会随之而改变,最后所有信息都保持一致。



    将文件名与索引节点分开,然后采用硬链接的技术使得管理文件变得更方便,效率更高。例如重命名,进程并不需要打开该文件,只需改动某个目录项的内容即可。 还有删除一个文件也是如此,将相应的目录项删除,该文件的链接数减1,如果删除目录项后该文件的链接数为零,这时系统才把真正的文件从磁盘上删除。



    认识了硬链接究竟是怎么一回事,理解硬链接的两个限制就容易多了。

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

    2、只有在同一文件系统中的文件之间才能创建链接。

    篇幅关系,不再赘述。





    为了克服以上限制,引入符号链接(symbolic link,也称软链接)。符号链接实际上是一种特殊的文件类型,这种文件包含了另一个文件的任意一个路径名。这个路径名指向位于任意一个文件系统的任意文 件,甚至可以指向一个不存在的文件。系统会自动把对符号链接的大部分操作(如读、写等)变为对源文件的操作,但某些操作(如删除等)就会直接在符号链接上 完成。在ln中加选项-s便产生一个文件的符号链接。
       总之:硬链接就是让多个不在或者同在一个目录下的文件,同时能够修改同一个文件,其中一个修改后,所有有与其有硬链接的文件都一起修改了。
         软链接就是与window中的快捷键一样。
    展开全文
  • hard link硬链接(索引节点): Linux对存放在磁盘中的每一个文件,都分配一个号码,称为索引节点号。 索引节点连接:目录中每一对文件名称和索引节点号称为一个连接(link) 使用ln命令来创建硬链接和软连接。 创建...

    hard link硬链接(索引节点):

    Linux对存放在磁盘中的每一个文件,都分配一个号码,称为索引节点号。

    索引节点连接:目录中每一对文件名称和索引节点号称为一个连接(link)

    使用ln命令来创建硬链接和软连接。

    创建一个连接可以用ln命令。




    soft link软连接(符号连接):

       使用索引连接的问题在于不能在不同的分区建立连接,位解决这个问题引入了符号连接,符号连接可以带-s参数的ln命令来创建

    查看文件的索引节点号可以用ls -i命令




    展开全文
  • 插播一下文件的软硬链接,其实也与文件系统相关。理解了硬链接和软链接也能够更好的理解文件系统 硬链接,符号链接 硬链接:不同的目录条目中指向相同的数据块内容 符号链接:其目录条目中,存放的是另一个路径的...

    前言

    插播一下文件的软硬链接,其实也与文件系统相关。理解了硬链接和软链接也能够更好的理解文件系统

    硬链接,符号链接

    • 硬链接:不同的目录条目中指向相同的数据块内容
    • 符号链接:其目录条目中,存放的是另一个路径的文件名,文件大小为存放路径字符个数,权限都为777

    硬链接

    ln src dest

    • 只能对文件创建,不能应用与目录 避免循环引用
    • 目录硬链接的数是2
    • 不能跨文件系统,因为inode不同
    • 创建硬链接会增加文件被链接的次数
    [ubpara link]$ls -il
    总用量 8
    660108 -rw-rw-r-- 1 ubpara ubpara    9 5月  14 19:41 a
    660109 drwxrwxr-x 2 ubpara ubpara 4096 5月  14 19:42 test
    [ubpara link]$ln a test/a
    [ubpara link]$ls -il test/
    总用量 4
    660108 -rw-rw-r-- 2 ubpara ubpara 9 5月  14 19:41 a
    [ubpara link]$ls -il
    总用量 8
    660108 -rw-rw-r-- 2 ubpara ubpara    9 5月  14 19:41 a
    660109 drwxrwxr-x 2 ubpara ubpara 4096 5月  14 19:42 test
    [ubpara link]$
    

    在test中创建a的一个硬链接 其inode号不变,表示当前目录的文件a和test目录下的文件a都指向相同的数据块。

    660108 -rw-rw-r-- 2 ubpara ubpara    9 5月  14 19:41 a
    2 代表硬链接数,从1变为2,若删除其中一个,硬链接数减1
    

    软链接,符号链接

    ln -s -v src dest

    • 可应用与目录
    • 可以跨文件系统
    • 不会增加被链接文件的链接次数
    • 其大小为其执行的路径所包含的字符个数
    [ubpara link]$pwd
    /home/ubpara/link
    [ubpara link]$ln -sv /home/ubpara/link/a test/a
    'test/a' -> '/home/ubpara/link/a'
    [ubpara link]$ls -il test/
    总用量 0
    660116 lrwxrwxrwx 1 ubpara ubpara 19 5月  14 19:50 a -> /home/ubpara/link/a
    [ubpara link]$ls -il .
    总用量 8
    660108 -rw-rw-r-- 1 ubpara ubpara    9 5月  14 19:41 a
    660109 drwxrwxr-x 2 ubpara ubpara 4096 5月  14 19:50 test
    [ubpara link]$
    

    在test目录下创建a的软链接,其inode号不同,是因为其新建的"目录项"中的内容是 “/home/ubpara/link/a”,权限为777

    注:创建软链接的时候,源文件需要为绝对路径,不然会以当前路径(目标文件所在的路径)来找其链接的文件,因为其目录项存放相对路径

    进阶

    [ubpara link]$ls
    a  test
    [ubpara link]$ls -il test/
    总用量 0
    660116 lrwxrwxrwx 1 ubpara ubpara 19 5月  14 19:50 a -> /home/ubpara/link/a
    [ubpara link]$cat test/a
    hello
    [ubpara link]$rm a
    [ubpara link]$ls -il test/
    总用量 0
    660116 lrwxrwxrwx 1 ubpara ubpara 19 5月  14 19:50 a -> /home/ubpara/link/a
    [ubpara link]$cat test/a
    cat: test/a: 没有那个文件或目录
    [ubpara link]$echo goodbye > a
    [ubpara link]$ls -il test/
    总用量 0
    660116 lrwxrwxrwx 1 ubpara ubpara 19 5月  14 19:50 a -> /home/ubpara/link/a
    [ubpara link]$cat test/a
    goodbye
    [ubpara link]$
    

    若将a的原文件删除,那么a的链接就失效了,没有那个文件或目录。当在原路径中在创建一个新的文件a,因为在test目录下的a的"目录项"保存的路径是"/home/ubpara/link/a" 不变,所以链接又能成功

    总结

    硬链接文件有两个限制

    1. 只能对文件创建,不能应用与目录 避免循环引用
    2. 目录硬链接的数是2
    3. 不能跨文件系统,因为inode不同
    4. 创建硬链接会增加文件被链接的次数

    软链接:

    1. 可应用与目录
    2. 可以跨文件系统
    3. 不会增加被链接文件的链接次数
    4. 其大小为其执行的路径所包含的字符个数
    展开全文
  • 一、软链接(相当于windows中的创建快捷方式)可以跨分区建立 添加软链接:ln -s + 源文件目录 + 目标文件目录 ...添加硬链接:ln+源文件目录+目标文件目录 硬链接的 inode 号和权限信息与源文件的一样,硬链接...
  • 文件系统之文件权限rwx(属主权限位 r-x(属组权限位)...文件属性之链接文件知识介绍硬链接:在文件系统的ext2,ext3文件系统中硬连接文件:文件的另一个入口不同文件,有相同的inode静态文件删除的条件(所有的硬链...
  • 目前,UNIX的文件系统有很多种实现,例如UFS(基于BSD的UNIX文件系统)、ext3、ext4、ZFS和Reiserfs等等。 不论哪一种文件系统,总是需要存储数据。硬盘的最小存储单位是扇区,数据所存储的最小单位则不是扇区,...
  • 详细的介绍: 硬连接指向的是节点(inode),是已存在文件的另一个名字,修改其中一个,与其连接的文件同时被修改;对硬链接文件进行读写和删除操作时候,效果和软链接相同。... 2、只有在同一文件系统中的文
  • 软连接(符号链接)和硬链接 软连接(符号) 硬链接 ln -s ln 源x x x YES /etc/rc.local -->链接文件 开机自动执行(命令或者脚本) /etc/rc.d/rc.local +x /etc/fastab 开机自动挂载文件系统 centos 系统默认的...
  • 要理解软硬链接,就先要从ext文件系统的存储原理说起硬盘上最小的存储单位是sector, 大小为512bytes.因为数据往往都大于512bytes所以我们把多个sector连起来存储数据, 这样做的目的是减少磁盘I/O的负担这个多个连...
  • 硬链接指向的文件inode号,新生成的硬链接文件的inode号与源文件的inode号相同,不可针对目录进行硬链接只能是文件,必须在同-文件系统内,可以将本地目录硬链接到另外目。删除一个文件名,不影响另外一个的访问 软...
  • Linux 系统中有软链接和硬链接两种...硬链接则透过文件系统的inode来产生新档名,而不是产生新档案。 创建方法都很简单: 软链接(符号链接) ln -s source target  硬链接 (实体链接)ln source target
  • 当给一个文件做了硬链接之后,删除文件时,只会减少文件的链接数,当链接数为0时,才会彻底删除该文件。软链接类似Windows系统的快捷方式,是一个完整的文件,有自己的inode和block,block的内...
  • 至于文件前面的硬链接数字的含义如下: 如图标注区,为硬连接的数量,文件前的数字1表示没有硬链接。文件夹前面的数字至少是2,含义是这个文件夹是空文件夹,当数字大于2时,比如为n>2,则表示这个文件夹下面有...
  • 在 Linux 的 ext2/3/4文件系统中,每一个普通文件或者普通目录(也被看做是文件)都存在一个 inode,每个inode都有一个本文件系统内唯一的 ID,这个 inode 保存文件的元数据,如创建时间、修改时间、文件类型、所有...
  • 文件系统详解 1、Ext4:第四代扩展文件系统文件系统最大16T) Xfs:一种高性能的日志文件系统文件系统最大100T) 2、inode :索引节点(记录文件属性,一个文件占一个节点) Block:存储文件的实际数据...
  • 1.硬链接文件&链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件; 2.在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为...
  • 至于文件前面的硬链接数字的含义如下:如图标注区,为硬连接的数量,文件前的数字1表示没有硬链接。文件夹前面的数字至少是2,含义是这个文件夹是空文件夹,当数字大于2时,比如为n>2,则表示这个文件夹下面有个n...
  • 文件系统与软硬链接

    2018-01-16 17:41:34
    文件系统与软硬链接  以Linux最标准的ext2文件系统为例。在Linux系统中,每个文件不仅有数据(内容),还包括元数据(各种属性),例如,所属用户组、所属用户、能否执行、文件建立时间、文件特殊属性,等等。在...
  • 普通文件、目录文件、管道文件、软链接文件、块设备文件、字符设备文件socket文件 ls-l读取存储在磁盘上的文件信息,然后显示出来 1 #include <stdio.h> 2 #include <stdlib.h>...
  • Linux下文件系统 磁盘上文件的管理系统,磁盘上除了交换分区外都有一个文件系统,如下图所示 这里我以ext2文件系统为例,介绍一下文件系统,如图 Linux ext2文件系统,上图为简略磁盘文件系统图(内核内存映像...
  • 前言 1.背景 当几个用户同在一个项目里工作时,常常需要共享文件。 为了解决不同用户在不同目录下共享同一个文件的问题,而有了链接(link)的概念 ...硬链接(hard link)目录指向了各个文件的i节点,当有共享文...
  • 对磁盘格式化就是写入文件系统文件系统本身也要占用一定的空间。文件系统相当于一张表,操作系统对硬盘的读写单位是block,分为四大类。 ls -i 文件 查看文件的inode号;ls -di 目录 查看目录的inode号
  • Linux 文件系统 & 软/硬链接文件

    千次阅读 2021-03-18 13:28:28
    文件系统 文件系统就是磁盘上管理文件的系统,一个硬盘有两个分区,一个是swap交换分区,是当内存不够用时将这个分区当做交换内存来使用;一个是filesystem文件系统分区,用来存储管理文件的; 文件系统分区是由多个...
  • 一、从inode了解Linux文件系统硬链接与软链接是Linux文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称 inode),而索引节点对象是 Linux 虚拟文件系统 (VFS) 的四个基本概念之一。在 Linux ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,459
精华内容 1,783
关键字:

文件系统硬链接