📅  最后修改于: 2023-12-03 15:32:41.558000             🧑  作者: Mango
在 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
可以看到,file1
和 file2
的 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
可以看到,file3
和 file4
的 inode 号不同,代表它们是不同的文件。file4
是指向 file3
的软链接,可以通过 readlink
命令查看。
readlink file4
输出:
file3
通过 ln
命令,我们可以创建硬链接和软链接,这让我们可以方便地管理文件系统中的文件和目录。需要注意的是,硬链接只能在同一个文件系统中创建,而软链接可以在不同的文件系统中创建。