📜  Linux 中的链接命令(1)

📅  最后修改于: 2023-12-03 15:32:41.558000             🧑  作者: Mango

Linux 中的链接命令

在 Linux 中,链接是将一个文件名与一个实际的文件相联系的一种方法。Linux 系统支持两种不同类型的链接:硬链接和软链接。

硬链接

硬链接是指在文件系统中创建一个新的文件名,让它指向相同的物理数据块。因此,硬链接不会占用额外的磁盘空间。在 Linux 中,可以使用 ln 命令来创建硬链接。

语法
ln [OPTIONS] TARGET LINK_NAME
  • TARGET:源文件或目录名称,可以是绝对路径或相对路径。
  • LINK_NAME:链接文件或目录名称,可以是绝对路径或相对路径。
示例

创建一个名为 file1 的文件,并创建一个名为 file2 的硬链接。

touch file1
ln file1 file2

此时,可以使用 ls -li 命令来查看文件的 inode 号(索引节点)。

ls -li file1 file2

输出:

30917929 -rw-r--r-- 2 user user 0 Jan  1 00:00 file1
30917929 -rw-r--r-- 2 user user 0 Jan  1 00:00 file2

可以看到,file1file2 的 inode 号相同,代表它们是同一个文件的硬链接。

软链接

软链接(也称为符号链接)是指创建一个指向目标文件的指针(类似于 Windows 中的快捷方式)。软链接会占用额外的磁盘空间,它在文件系统中只有一个条目,但是可以有多个不同的名称指向它。在 Linux 中,可以使用 ln -s 命令来创建软链接。

语法
ln -s TARGET LINK_NAME
  • TARGET:源文件或目录名称,可以是绝对路径或相对路径。
  • LINK_NAME:链接文件或目录名称,可以是绝对路径或相对路径。
示例

创建一个名为 file3 的文件,并创建一个名为 file4 的软链接。

touch file3
ln -s file3 file4

此时,可以使用 ls -li 命令来查看文件的 inode 号。

ls -li file3 file4

输出:

30917930 -rw-r--r-- 1 user user 0 Jan  1 00:00 file3
30918483 lrwxrwxrwx 1 user user  5 Jan  1 00:00 file4 -> file3

可以看到,file3file4 的 inode 号不同,代表它们是不同的文件。file4 是指向 file3 的软链接,可以通过 readlink 命令查看。

readlink file4

输出:

file3
总结

通过 ln 命令,我们可以创建硬链接和软链接,这让我们可以方便地管理文件系统中的文件和目录。需要注意的是,硬链接只能在同一个文件系统中创建,而软链接可以在不同的文件系统中创建。