如何在Linux上创建硬链接和软(符号)链接

在本教程中,您将学习如何使用符号链接(也称为硬链接和“软”链接)来多个文件名引用同一文件。这是在Linux上创建指向同一文件的多个名称的两种常用方法:

  • 创建到文件的软链接(符号链接)
  • 创建到文件的硬链接。

软链接(符号链接)上的操作

软链接是一种特殊类型的文件,它指向现有文件或目录。可用于链接不同文件系统上的两个文件。软链接也可以指向特殊文件。

ln -s 使用命令创建软链接。让我们考虑一个例子。

在以下示例中, ln -s 使用该命令为名为/tmp/file2.txt的现有文件/tmp/file1.txt创建新的软链接。

$ echo "Hello from file1" > /tmp/file1.txt
$ ln -s /tmp/file1.txt /tmp/file2.txt

列出并确认文件。

$ ls -l /tmp/file1.txt /tmp/file2.txt
-rw-------. 1 jkmutai jkmutai 17 Feb  4 22:37 /tmp/file1.txt
lrwxrwxrwx. 1 jkmutai jkmutai 14 Feb  4 22:38 /tmp/file2.txt -> /tmp/file1.txt

/tmp/file2.txt中长列表的第一个字符是:代替-。这表明该文件是软链接,而不是常规文件。 (A d 表示文件是目录。 )

检查符号链接文件的内容。

$ cat /tmp/file2.txt
Hello from file1

使用以下目录:

ln -s /dir /dir2

即使删除原始常规文件,软链接也会指向丢失的文件。悬空的软链接

硬链接的使用

Linux中的每个文件都以单个硬链接开头。当您创建指向文件的新硬链接时,将创建另一个名称,该名称指向相同的数据。

新的硬链接的工作方式与原始文件名完全相同。很难说出新的硬链接和文件的原始名称之间的区别。你用 ln 创建硬链接的命令-现有文件的另一个名称。

$ echo "Hello World from Hard Link" >/tmp/hello1.txt
$ ln /tmp/hello1.txt  /tmp/hello2.txt 

其中:

  • /tmp/hello1.txt是现有文件的路径
  • /tmp/hello2.txt是要创建的硬链接。

使用方法 ls -i 列出文件的选项” 节点 号码如果索引节点号相同,则该文件是指向相同数据的硬链接。

$ ls -li /tmp/hello1.txt  /tmp/hello2.txt
2591191 -rw-------. 2 jkmutai jkmutai 27 Feb  5 08:16 /tmp/hello1.txt
2591191 -rw-------. 2 jkmutai jkmutai 27 Feb  5 08:16 /tmp/hello2.txt

--- Let's add third file and recheck ---
$ ln /tmp/hello1.txt  /tmp/hello3.txt 
$ ls -li /tmp/hello1.txt  /tmp/hello2.txt /tmp/hello3.txt 
2591191 -rw-------. 3 jkmutai jkmutai 27 Feb  5 08:16 /tmp/hello1.txt
2591191 -rw-------. 3 jkmutai jkmutai 27 Feb  5 08:16 /tmp/hello2.txt
2591191 -rw-------. 3 jkmutai jkmutai 27 Feb  5 08:16 /tmp/hello3.txt

引用同一文件的所有硬链接都相同。

  • 链接数
  • 权限
  • 用户和组所有权
  • 时间戳记
  • 文件内容

与Softlink的比较:

$ ls -li /tmp/file1.txt /tmp/file2.txt /tmp/file3.txt
2442008 -rw-------. 1 jkmutai jkmutai 17 Feb  4 22:37 /tmp/file1.txt
2442949 lrwxrwxrwx. 1 jkmutai jkmutai 14 Feb  4 22:38 /tmp/file2.txt -> /tmp/file1.txt
2601927 lrwxrwxrwx. 1 jkmutai jkmutai 14 Feb  5 08:24 /tmp/file3.txt -> /tmp/file1.txt

软链接和硬链接之间的主要区别

  • 硬链接将名称指向存储设备上的数据
  • 软链接将一个名称指向另一个名称,并指向存储设备上的数据

享受Linux。有关更多信息,请参见交易。

学习资料特价

要购买Linux书籍,请检查以下内容:

适用于初学者和专业人士的最佳Linux书籍

LPIC-1和LPIC-2参考书

RHCSA和RHCE书籍

Sidebar