📅  最后修改于: 2023-12-03 15:20:54.213000             🧑  作者: Mango
在 Unix/Linux 系统中,文件系统是以树形结构组成的层次结构,主要涉及到目录(dir)和文件(file)两种结构对象。但是,除了这两种结构对象以外,硬链接(hard link)和软链接(symbolic link,简称 symlink)也是文件系统中一种重要且常用的概念。
硬链接是指在同一个文件系统中,为同一个文件创建一个额外的名称(即链接名),使得该文件在文件系统中有了多个访问入口,从而使得该文件的访问计数器增加1。硬链接不会复制文件内容,只是增加了对同一个文件的引用入口。
创建硬链接需要使用 ln
命令,并且需要保证该硬链接和原始文件在同一个文件系统中。创建硬链接的语法格式如下:
ln <original_file> <hard_link_name>
其中,original_file
表示原始文件名,hard_link_name
表示硬链接文件名。
下面是一个实例:
假设当前路径下有一个源文件 ../test/hardlink.dat
,我们要为该文件创建一个硬链接 mydat
,那么可以执行如下命令:
ln ../test/hardlink.dat mydat
创建硬链接之后,可以通过 ls -l
命令查看文件的权限信息和链接数目,如下所示:
$ ls -l
total 0
-rw-r--r-- 2 user group 0 Jul 4 18:49 hardlink.dat
-rw-r--r-- 2 user group 0 Jul 4 18:49 mydat
上述输出可以看到,文件 hardlink.dat
和文件 mydat
均被标记为硬链接文件,它们的链接计数器均增加到2。
硬链接的注意点有如下几点:
软链接是指在同一个文件系统中,为一个文件创建了一个特殊的文件,该文件包含了指向原始文件的链接。软链接相当于是一个指针,它指向原始文件的位置。
创建软链接需要使用 ln -s
命令,并且可以链接到不同的文件系统和目录中。创建软链接的语法格式如下:
ln -s <original_file> <symlink_name>
其中,original_file
表示原始文件名,symlink_name
表示软链接名。
下面是一个实例:
假设当前路径下有一个源文件 ../test/softlink.dat
,我们要为该文件创建一个软链接 soft_link
,那么可以执行如下命令:
ln -s ../test/softlink.dat soft_link
创建软链接之后,可以通过 ls -l
命令查看软链接的信息,如下所示:
$ ls -l
total 0
lrwxr-xr-x 1 user group 16 Jul 4 18:51 soft_link -> ../test/softlink.dat
-rw-r--r-- 1 user group 0 Jul 4 18:49 softlink.dat
上述输出可以看到,文件 soft_link
标记为软链接文件,它指向的路径是 ../test/softlink.dat
。
软链接的注意点有如下几点: