Linux创建链接(ln)

Linux创建链接(ln)教程

Linux 中,ln 命令用于给指定的文件创建一个链接文件,该命令既可以用于创建软链接文件也可以用于创建硬链接文件。

ln 命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化。

Linux软链接与硬链接

软链接

  1. 类似于 Windows 系统中给文件创建快捷方式,即产生一个特殊的文件,该文件用来指向另一个文件,此链接方式同样适用于目录。
  2. 软链接可以 跨文件系统 ,硬链接不可以。
  3. 软链接可以对一个不存在的文件名进行链接。
  4. 软链接可以对目录进行链接。

硬链接

  1. 在 Linux 中,文件的基本信息都存储在 inode 中,而硬链接指的就是给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的 inode,从而读取该文件的数据信息。
  2. 硬链接,以文件副本的形式存在。但不占用实际空间。
  3. 不允许给目录创建硬链接。
  4. 硬链接只有在同一个文件系统中才能创建。

Linux ln命令详解

功能

创建软链接或硬链接。

语法

ln [参数] [源文件或目录] [目标文件或目录]

常用参数

参数 描述
-b 删除,覆盖以前建立的链接。
-d 允许超级用户制作目录的硬链接。
-f 强制执行。
-i 交互模式,文件存在则提示用户是否覆盖。
-n 把符号链接视为一般目录。
-s 软链接(符号链接)。
-v 显示详细的处理过程。

说明

ln 的链接分软链接和硬链接两种,软链接就是 ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接 ln 源文件 目标文件,没有参数 -s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

ln 指令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。

Linux ln命令常用实例

实例

实例 描述
ln srcFile destFile 创建一个硬链接
ln -s srcFile destFile 创建一个软链接

说明

使用 -s 选项,创建的是软链接,默认,创建的是硬链接。

创建硬链接

语法

ln srcFile destFile

案例

我们首先,使用 cd 命令,切换到 /tmp 目录,具体命令如下:

cd /tmp

运行后,终端输出如下:

79_Linux创建链接ln命令.png

现在,我们使用 echo 命令,在当前目录下创建一个新文件并写入内容,具体命令如下:

echo "Hello HaiCoder From Temp" >> haicoder.txt

运行后,终端输出如下:

80_Linux创建链接ln命令.png

现在,我们使用 ls 命令,查看我们创建的文件,具体命令所下所示:

ls -l haicoder.txt

运行后,终端输出如下:

81_Linux创建链接ln命令.png

我们看到,显示了我们创建的文件的详细信息,现在,我们再次使用 ln 命令,对该文件创建一个硬链接,具体命令所下所示:

ln haicoder.txt /home/hailink.txt

运行后,终端输出如下:

82_Linux创建链接ln命令.png

现在,我们再次使用 ls 命令,查看 home 目录下我们创建的链接文件,命令如下:

ls -l /home/hailink.txt

运行后,终端输出如下:

83_Linux创建链接ln命令.png

我们看到,硬链接我们已经创建了,现在,我们使用 cat 命令,查看硬链接的文件内容,具体命令如下:

cat /home/hailink.txt

运行后,终端输出如下:

84_Linux创建链接ln命令.png

我们看到,硬链接的文件内容与原始文件的文件内容是一样的,现在,我们修改硬链接的文件内容,具体命令如下:

echo "Append Line" >> /home/hailink.txt

运行后,终端输出如下:

85_Linux创建链接ln命令.png

修改完毕之后,我们再次使用 cat 命令,查看硬链接的文件内容与原始的文件内容,具体命令如下:

cat /home/hailink.txt /tmp/haicoder.txt

运行后,终端输出如下:

86_Linux创建链接ln命令.png

我们看到,我们修改硬链接的文本内容,原始文件内容也一起被修改了。

创建软链接

语法

ln -s srcFile destFile

案例

我们首先,使用 echo 命令,新建一个文件,并写入内容,具体命令如下:

echo "Hello HaiCoder From Temp" >> /tmp/haicodersoft.txt

运行后,终端输出如下:

87_Linux创建链接ln命令.png

现在,我们使用 cat 命令,查看该文件的内容,具体命令如下:

cat /tmp/haicodersoft.txt

运行后,终端输出如下:

88_Linux创建链接ln命令.png

我们看到,我们已经新建了文件,并写入了内容,现在,我们使用 ln 命令,对该文件创建一个软链接,具体命令如下:

ln -s /tmp/haicodersoft.txt /home/haicodersoftlink.txt

运行后,终端输出如下:

89_Linux创建链接ln命令.png

现在,我们使用 ls 命令,查看我们创建的软链接,具体命令如下:

ls -l /home/haicodersoftlink.txt

运行后,终端输出如下:

90_Linux创建链接ln命令.png

我们看到,我们已经创建了一个软连接,并指向了源文件,现在,我们修改软链接的内容,具体命令如下:

echo "Append Soft Link" >> /home/haicodersoftlink.txt

运行后,终端输出如下:

91_Linux创建链接ln命令.png

现在,我们使用 cat 命令,查看链接文件与源文件的内容,具体命令如下:

cat /home/haicodersoftlink.txt /tmp/haicodersoft.txt

运行后,终端输出如下:

92_Linux创建链接ln命令.png

我们看到,软链接的内容与源文件内容都被修改了。

Linux创建链接(ln)总结

在 Linux 中,ln 命令用于给指定的文件创建一个链接文件,该命令既可以用于创建软链接文件也可以用于创建硬链接文件。

ln 命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化。