`

软链接和硬链接及查看链接文件命令

阅读更多
http://www.xxlinux.com/linux/article/accidence/technique/20081224/14724.html
查看链接文件命令,比如你有一个软链接/etc/php.ini 想查找他的链接文件,那可以直接用:ls -lih /etc/php.ini命令,则显示为:6390969 lrwxrwxrwx 1 root root 27 12-24 16:08 /etc/php.ini -> /usr/local/Zend/etc/php.ini,清楚的看到他是链接到zend目录下的文件

系统文件系统使用情况,其中 /home 文件系统当前已使用了 3.0G ,剩余105G
[root@s14 ~]# df -h
Filesystem            Size Used Avail Use% Mounted on
/dev/mapper/sys-root 4.0G 2.3G 1.5G 60% /
/dev/cciss/c0d0p1     244M   11M 221M   5% /boot
none                  1.9G     0 1.9G   0% /dev/shm
/dev/mapper/sys-home 112G 3.0G 105G   3% /home
/dev/mapper/sys-var   2.0G 174M 1.7G 10% /var

我们拿一个大文件来做测验,1.6G 大小。
[root@s14 ~]# ls -lh /home/zjw/Wins2003.tar.gz
-rw-r--r-- 1 zjw zjw 1.6G Jun 12 18:51 /home/zjw/Wins2003.tar.gz

建立软连接:
[root@s14 ~]# ln -s /home/zjw/Wins2003.tar.gz /home/zjw/Wins2003.tar.gz.symboliclink
建立硬连接:
[root@s14 ~]# ln -b /home/zjw/Wins2003.tar.gz /home/zjw/Wins2003.tar.gz.hardlink

查看这几个文件的情况,发现:
1)硬链接文件显示跟原来文件一样大小1.6G,软链接文件才27个字节;
2)硬链接文件inode号跟原来文件一样,都是 753682,软链接文件inode号为 753685;
[zjw@s14 ~]$ ls -lih /home/zjw/Wins2003.tar.gz*
753682 -rw-r--r-- 2 zjw zjw 1.6G Jun 12 18:51 /home/zjw/Wins2003.tar.gz
753682 -rw-r--r-- 2 zjw zjw 1.6G Jun 12 18:51 /home/zjw/Wins2003.tar.gz.hardlink
753685 lrwxrwxrwx 1 root root   27 Jun 16 18:10 /home/zjw/Wins2003.tar.gz.symboliclink -> /home/zjw/Wins2003.tar.gz

查看 /home 文件系统,发现空间使用没有明显变化,还是使用 3.0G,剩余 105G
[root@s14 ~]# df -h /home
Filesystem            Size Used Avail Use% Mounted on
/dev/mapper/sys-home 112G 3.0G 105G   3% /home

上述实验说明:
1)在同一文件系统下,可以创建软链接或硬链接(同文件系统不同目录下也可以);
2)硬链接的文件显示大小跟原文件一样;软链接的文件很小,只有几十个字节;
3)硬链接的文件的inode跟原文件一样;软连接的文件有自己的inode,跟原文件不一样;
4)创建软链接或硬链接文件不会明显占用文件系统磁盘空间;

我们测试一下跨文件系统(/home --> /var ),是否可以建立软链接和硬链接:
软链接成功:
[root@s14 var]# ln -s /home/zjw/Wins2003.tar.gz   /var/wins2003.symboliclink
硬链接失败:
[root@s14 var]# ln -b /home/zjw/Wins2003.tar.gz   /var/wins2003.hardlink     
ln: creating hard link `/var/wins2003.hardlink' to `/home/zjw/Wins2003.tar.gz': Invalid cross-device link

上述实验说明:
1)软链接可以跨文件系统建立; 硬链接则不可以;




硬链接(hard link)
        UNIX文件系统提供了一种将不同文件链接至同一个文件的机制,我们称这种机制为链接。它可以使得单个程序对同一文件使用不同的名字。这样的好处是文件系 统只存在一个文件的副本,系统简单地通过在目录中建立一个新的登记项来实现这种连接。该登记项具有一个新的文件名和要连接文件的inode号,文件的目录登记项就是所谓的文件硬链接(硬链接,目录登记项: 文件名-->文件的inode;文件名可以有多个,但文件inode只是一个)。不论一个文件有多少硬链接,在磁盘上只有一个描述它的inode,只要该文件的链接数不为0,该文件就保持存在。硬链接不能跨越文件系统,也不能对目录建立硬链接!
        硬 连接是直接建立在节点表上的(inode),建立硬连接指向一个文件的时候,会更新节点表上面的计数值。举个例子,一个文件被连接了两次(硬连接),这 个文件的计数值 是3,而无论通过3个文件名中的任何一个访问,效果都是完全一样的,但是如果删除其中任意一个,都只是把计数值减1,不会删除实际的内容的,(任何存在的 文件本身就算是一个硬连接)只有计数值变 成0也就是没有任何硬连接指向的时候才会真实的删除内容。

软链接(symbolic link)
        我们把符号链接称为软链接,它是指向另一个文件的特殊文件,这种文件的数据部分仅包含它所要链接文件的路径名。软链接是为了克服硬链接的不足而引入的,软链接不直接使用inode号作为文件指针,而是使用文件路径名作为指针(软链接:文件名 + 数据部分-->目标文件的路径名)。软件有自己的inode,并在磁盘上有一小片空间存放路径名。因此,软链接能够跨文件系统,也可以和目录链接!其二,软链接可以对一个不存在的文件名进行链接,但直到这个名字对应的文件被创建后,才能打开其 链接。
分享到:
评论

相关推荐

    Linux软连接和硬链接

    在Linux操作系统中,...文章《Linux软连接和硬链接》以及相关资料提供了深入的探讨,包括它们的工作原理、创建方法以及使用示例。通过阅读这些材料,你可以更全面地了解如何在Linux环境中有效地利用这两种链接技术。

    Linux软连接和硬链接-实际操作一遍你就会懂

    Linux操作系统中,文件的链接是一种将文件的不同名称关联起来的技术,这种技术分为两种主要类型:硬链接(HardLink)和符号链接(SymbolicLink),也就是我们常说的软链接。通过实际操作演示,可以更直观地理解这两...

    linux 硬链接和软链接深入理解.docx

    Linux 硬链接和软链接深入理解 Linux 操作系统中有两种类型的链接:硬链接和软链接。...硬链接和软链接都是 Linux 文件系统中的重要概念,了解它们的区别和使用场景对于 Linux 系统管理员和开发者非常重要。

    需要了解的linux硬链接与软链接.docx

    硬链接的创建方法是使用 ln 命令,例如 ln sourcetarget,软链接的创建方法是使用 ln -s 命令,例如 ln -s sourcetarget。硬链接和软链接都可以用于快速链接到目标档案或目录,但是它们有着不同的特点和应用场景。 ...

    ln的软硬连接区别

    这意味着软链接和其目标文件实际上是两个独立的实体,只是软链接提供了一种访问目标文件的额外途径。当创建一个软链接时,系统会在当前目录下生成一个新的文件,其内容为指向原文件的路径字符串。 - **命令语法**:...

    详解linux软连接和硬链接

    在Linux操作系统中,文件系统支持两种类型的链接:硬链接(Hard Link)和软链接(Symbolic Link),这两种链接都是为了提供文件的多个访问路径。理解它们的区别和使用场景对于日常的Linux操作非常重要。 首先,硬...

    硬连接和符号连接

    - **不影响文件计数**:删除任意一个硬连接都不会影响原文件的链接计数,只有当最后一个硬连接被删除后,文件的索引节点才会被回收,从而释放磁盘空间。 - **不能跨文件系统**:硬连接只能在同一文件系统内创建,...

    Centos 7 硬连接和软连接.pdf

    本文将深入探讨两个关键概念:硬连接(Hard Links)和软连接(Symbolic Links),它们都是Linux系统中创建多条访问同一文件内容路径的方法。了解这两个概念对于日常的文件管理和系统维护至关重要。 首先,让我们来...

    Linux入门之ln命令创建软链接的绝对路径和相对路径详解(Ubuntu)

    Linux链接,可以分为硬链接与软链接;本文主要介绍软链接。(默认情况下,ln命令产生硬链接) 软链接文件类似于Windows的快捷方式,但实际上是一个特殊的文件。在软连接中,文件实际上是一个文本文件,其中包含另一...

    shell中的函数、硬链接、软链接、权限、特定变量$1,$#等

    本文将深入探讨Shell中的函数、硬链接、软链接、权限管理以及特定变量如$1和 $#等概念。 首先,让我们从Shell函数开始。函数在Shell脚本中起到模块化代码的作用,可以重复使用并降低复杂性。定义一个函数的基本语法...

    Linux实验三 软硬连接 压缩打包和解压

    * 使用 ln 建立文件链接:ln 命令用于建立文件链接,分为硬链接和软链接两种。 * tar 文件打包和压缩功能的使用:tar 命令用于将文件和目录打包和压缩,常用的选项有-c、-x、-z 等。 三、实验过程 1. find 命令的...

    +实验4 Linux的文件系统.docx

    10. 使用 `cat` 命令查看硬链接文件的内容。 (二) 文件软连接 1. 创建一个以自己的姓名命名的文件。 2. 使用 `ln` 命令为第(1)步的文件创建一个符号链接文件。 3. 使用 `cp` 命令为第(1)步的文件创建一个复制...

    链接文件管理~~~~

    1. Linux/Unix系统:这两个操作系统广泛支持链接文件,命令如`ln`用于创建硬链接和软链接。 2. Git版本控制系统:Git中的分支实际上就是一种软链接,指向同一份共同的提交历史。 3. 软件安装:某些软件安装程序会...

    Linux硬链接与软链接原理及用法解析

    在Linux操作系统中,链接文件...了解并熟练掌握硬链接和软链接的使用,能帮助Linux用户更有效地管理和优化他们的文件系统。在日常工作中,根据具体需求选择合适的链接类型,可以提高工作效率,同时充分利用系统的资源。

    tomcat支持访问软链接(ln -s)文件目录

    tomcat访问软链接路径报404错误,这是应为tomcat因为安全问题,默认不运行访问软链接文件路径。 修改支持软链接方法tomcat5 6 7: 打开 $tomcat_home/conf/context.xml中配置文件,修改里面的信息即可: 找到 标签 ...

    ubuntu-修改python与pip软链接.pdf

    通过创建软链接,我们可以让一个文件或目录在多个位置出现,这对于系统管理和维护来说非常有用。 #### 三、定位当前的Python和pip路径 在修改软链接之前,我们需要先确定当前系统默认使用的Python和pip版本所在的...

    区分Linux硬链接与软链接

    主要分为两种类型:硬链接(hard link)和软链接(soft link),也称作符号链接(symbolic link)。这两种链接方式各有特点,适用于不同的场景。 硬链接,顾名思义,是一种“硬性”的连接方式。它通过文件系统的...

    什么是Linux软链接和Linux硬链接

    Linux链接是文件系统中的一种机制,它允许一个文件有多个访问路径。主要分为两种类型:硬链接(Hard Link)和软链接(Symbolic Link),两者都有各自的...正确使用硬链接和软链接能帮助优化文件组织,提高工作效率。

Global site tag (gtag.js) - Google Analytics