`

unix下的softlink和hardlink

阅读更多
Linux中包括两种链接:硬链接(hard link)和软链接(soft link),软链接又称为符号链接(symbolic link)

创建命令:
ln -s softlink destfile/directory   #建立软连接
ln hardlink destfile                    #建立硬连接

inode
在Linux系统中,内核为每一个新创建的文件分配一个Inode,每个文件都有一个惟一的inode号,我们可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。文件属性保存在inode里,在访问文件时,inode被复制到内存在,从而实现文件的快速访问。系统是通过inode来定位每一个文件。

硬链接(hard link)
硬链接实际上是一个指针,指向源文件的inode,系统并不为它重新分配inode。硬连接不会建产新的inode,硬连接不管有多少个,都指向的是同一个inode节点,只是新建一个hard link会把结点连接数增加,只要结点的连接数不是0,文件就一直存在,不管你删除的是源文件还是连接的文件。只要有一个存在,文件就存在(其实就是引用计数的概念)。当你修改源文件或者连接文件任何一个的时候,其他的文件都会做同步的修改。

软链接(soft link)
软链接最直观的解释:相当于Windows系统的快捷方式,是一个独立文件(拥有独立的inode,与源文件inode无关),该文件的内容是源文件的路径指针,通过该链接可以访问到源文件。所以删除软链接文件对源文件无影响,但是删除源文件,软链接文件就会找不到要指向的文件(可以类比Windows上快捷方式,你点击快捷方式可以访问某个文件,但是删除快捷方式,对源文件无任何影响)。

区别
1. 软链接和源文件操作权限不一样 inode不一样;硬链接与源文件操作权限完全一致(同一个INODE 引用计数++)。
2. 软链接可以跨文件系统(分区);由于inode的限制以及文件系统的可卸载性,硬连接不容许跨文件系统。
3. 软连接可以对一个不存在的文件名进行连接;硬链接不可以。
4. 软连接可以对目录进行连接;硬链接不可以。
分享到:
评论

相关推荐

    LINUX与UNIX.Shell编程指南

    符号链接有两种类型:软链接(Soft Link,也称符号链接)和硬链接(Hard Link)。软链接不共享数据,而硬链接则共享数据。 #### 二、文件类型与权限 在Linux和UNIX系统中,文件类型决定了如何处理文件以及可以对其...

    uid、umask、link的問答1

    在IT领域,特别是文件系统和权限管理中,`uid`、`umask`以及`link`(包括硬链接和软链接)是至关重要的概念。以下是对这些知识点的详细解释: **1. UID (用户ID)** 在Unix-like操作系统中,每个用户都有一个唯一的...

    11-Linux操作系统面试题.docx

    硬链接(Hard Link)和软链接(Soft Link)都是 Linux 文件系统中的链接类型。硬链接是一种真正的文件副本,而软链接是一种符号链接。 二十四、RAID 是什么? RAID(Redundant Array of Independent Disks)是一种...

    Computer System Engineering - 计算机系统工程 (1-7)1

    - **硬链接**(Hard link)和**软链接**(Soft link):硬链接允许文件有多个入口,软链接(符号链接)则创建指向其他文件的指针。 7. **目录数据结构**: - 目录大小通常不大,因为它们仅包含文件名和对应的...

    2016秋操作系统试题及其答案B1

    - 符号链接(Soft Link)和硬链接(Hard Link)。 10. **其他知识点**: - 就绪队列中最多有10个进程,因为有10个并发执行的进程。 - 高响应比优先调度算法考虑了作业的到达时间和执行时间。 - 为避免死锁,每...

    浅谈在Redhat9上安装Oracle92.docx

    按照安装向导的提示操作,指定Unix组名为“dba”。 在安装过程中,可能会遇到两个错误:“ins_oemagent.mk”和“ins_ctx.mk”。对于“ins_oemagent.mk”错误,可以选择忽略并继续安装。安装完成后,解决该问题。而...

    运维常用linux命令\shell技巧

    例如:`ln file1 file1_hardlink`(硬链接)和`ln -s file1 file1_softlink`(软链接)。 - **查看文件内容**: - `cat`用于显示文件内容。 - `less`和`more`用于分页查看大文件内容,其中`more`只能向下翻页,而`...

    linux教程——很使用的那种

    sda1和sda2相当于windows下的c盘和d盘的关系。 各种接口的磁盘在linux中文件名分别为: /dev/sd[a-p][1-15]:为SCSI,SATA,USB,Flash等接口的磁盘文件名。第一块硬盘为sda,第二块硬盘为sdb,根据主板上的接口来决定...

Global site tag (gtag.js) - Google Analytics