云网牛站
所在位置:首页 > Linux教程 > 在Linux系统中创建硬链接和软链接(符号链接)的方法

在Linux系统中创建硬链接和软链接(符号链接)的方法

2020-02-07 15:28:42作者:晴弈稿源:云网牛站

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

在Linux系统中创建硬链接和软链接(符号链接)的方法

 

使用硬链接

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

新的硬链接的行为与原始文件名完全相同,很难说出新的硬链接和文件的原始名称之间的区别,您可以使用ln命令来创建硬链接,另一个指向现有文件的名称:

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

$ ln /tmp/hello1.txt  /tmp/hello2.txt

参考:ln命令_Linux ln命令使用详解:用来为文件创件连接

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

使用ls -i选项可列出文件的inode编号,如果索引节点号相同,则文件是指向相同数据的硬链接:

$ 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

引用同一文件的所有硬链接都具有相同的内容:链接数、访问权限、用户和组的所有权、时标、文件内容。

与软链接比较:

$ 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

 

使用软链接(符号链接)

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

ln -s命令用于创建软链接,让我们看一个例子。

在以下示例中,ln -s命令用于为现有文件/tmp/file1.txt创建一个新的软链接,该文件将命名为/tmp/file2.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的长列表的第一个字符是l而不是-,这表明该文件是软链接,而不是常规文件。(A d表示该文件是目录。)

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

$ cat /tmp/file2.txt

Hello from file1

对于目录,请使用:

ln -s /dir /dir2

如果删除原始常规文件,则该软链接仍将指向丢失的文件,即“dangling soft link”。

 

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

1、硬链接将名称指向存储设备上的数据。

2、软链接将一个名称指向另一个名称,该名称指向存储设备上的数据。

 

相关主题

在Linux中使用Chgrp命令的方法:更改文件/符号链接/递归更改组所有权

精选文章
热门文章