如何在 Linux 上创建指向目录的软链接?
软链接(符号链接或符号链接)是指向系统中可用文件或文件夹的快捷方式。通常,这些软链接用于链接库。软链接允许在不同的文件系统或目标中存储同一文档的多个副本。
此链接指向原始文档的路径和地址。软链接包含多个方面,例如:-
软链接可以链接到目录和常规文件。
删除软链接后,原始文档仍然可用。
移动或删除原始文件时,符号链接将不起作用。
软链接通常用于常用文件,因此您无需输入完整位置即可快速访问这些文件。
软文件和实际链接文件的 inode 编号不同。
软链接的功能类似于 Web 上的超链接。如果您也想在 Linux 上创建指向目录的软链接,请遵循本指南。
如何在 Linux 上创建指向目录的软链接?
"ln"是一个命令行实用程序,用于在文件或文件夹之间创建链接。默认情况下,它会创建硬链接。在 Linux 上,您可以使用 ln 命令的 -s 或 --symbolic 选项创建指向目录的软链接。以下是您可以遵循的 ln 命令的基本语法 -
ln -s <source file/directory name> <target directory/file name> <soft_link name> Or ln --symbolic <source directory name> <target directory/file name> <soft_link name>
例如,让我们通过 ln 命令将"Documents"链接到"Link"目录 -
~$: ln -s Documents Link
如果您想验证软链接,请转到文件管理器并检查可用的链接文件 -

成功创建指向目录的软链接后,上述命令不会产生任何输出。因此,您可以使用以下命令验证新创建的软链接 -
ls -l <目标软链接目录/文件名> <软链接名称>
让我们通过一些示例来更好地理解软链接的创建。
~$: ls -l Documents Link lrwxrwxrwx 1 prateek prateek 9 Feb 21 12:22 Link -> Documents Documents: total 24 -rw-rw-r-- 1 prateek prateek 0 Feb 20 16:10 bash.sh -rw-rw-r-- 1 prateek prateek 0 Feb 20 16:11 file.txt drwxrwxr-x 2 prateek prateek 4096 Feb 20 16:28 'Images' drwxrwxr-x 2 prateek prateek 20480 Feb 20 16:28 'Information'
为文件创建指向同名目录的软链接
此处,我们在 Documents 目录中有一个文件"example.txt",并将此文件链接到 Downloads 目录中 -
~$:ln -s /home/prateek/Documents/example.txt Downloads
要验证软链接,请运行以下命令 -
~$:ls -l Downloads/example.txt lrwxrwxrwx 1 prateek prateek 35 2021年2月 13:01 Downloads/example.txt -> /home/prateek Documents example.txt
额外提示 − 在上面的命令中,我们使用了绝对路径,这很简单,也推荐使用。但是,您必须正确指定路径。为此,您可以运行以下命令将软链接目录设为终端的当前目录 −
~$: cd ~/Downloads ~$: ln -s /home/prateek/Documents/example.txt
为文件创建指向不同名称目录的软链接
在此示例中,我们将创建一个指向 Downloads 目录中名为 Documents1 的 Documents 目录的软链接。在这里,我们将遵循上述命令,然后输入要创建链接的名称。它的命令类似如下:-
~$: ln -s /home/prateek/Documents Downloads/Documents1 ~$: ls -l Downloads/Documents1 ~$: lrwxrwxrwx 1 prateek prateek 2021年2月23日 13:21 Downloads/Documents1 -> /home/prateek Documents
这样,您就可以创建一个指向不同目录的软链接文件,并使用不同的链接名称。
软链接的权限
当我们更改软链接的权限时,它会通过 chmod 命令转发到目标目录或文件。这是因为 chmod 命令会将权限更改应用于目标目录,无论更改是否成功。因此,
所有软链接始终允许访问 0777/lrwxrwxrwx。
软链接权限永远无法更改。
覆盖软链接
ln 命令在创建已存在的软链接时会打印错误消息(创建软链接失败)。
在 ln 命令中使用 -f 或 --force 选项,可以覆盖软链接的目标路径并解决此错误。
ln -sf <源文件/目录的路径> <目标文件/目录的路径>
注意 − 在更新版本的 Linux 下对原始文件所做的更改将自动更新或覆盖软链接。
查找所有软链接
您可以使用以下 find 命令查看任何文件夹和文件下的所有软链接 −
~$: find <path of the file/directory> -type l
例如,让我们找出 Downloads 目录的所有软链接 -
~$: find Downloads -type l /home/prateek/Downloads/example.txt /home/prateek/Downloads/Documents1
查找断开的链接
如果您将文件从一个目录移动或删除到另一个目录,软链接将自动断开。由于该链接没有内容,因此每次尝试访问该文件都会返回"没有此文件或目录"。您可以再次使用以下 find 命令来查找这些断开的链接。
~$: find <文件/目录的路径> -xtype l
结果,此命令将显示目录或文件中所有已断开的软链接。您可以通过在上述命令中添加 -delete 选项来一次性删除所有已断开的链接。
删除软链接
软链接也像普通文件一样,您可以使用 rm 命令删除它们。此外,Linux 还提供了一个名为 unlink 的单独实用程序来删除软链接,您可以使用它来删除软链接。
使用 unlink 命令删除软链接无需任何参数。按照以下命令删除软链接 -
~$: unlink <软链接路径>
在这里,我们将取消 example.txt 文件与 Downloads 目录的链接 -
~$: unlink /home/prateek/Documents/example.txt
此外,您还可以使用 rm 命令删除软链接。rm 命令相对于 unlink 命令的优势在于您可以一次删除多个软链接 -
~$: rm <文件/目录的路径> soft link1 softlink2
总结
使用软链接,您可以从多个位置访问任何文件或目录。在 Linux 中,使用 ln 命令的 -s 选项可以创建软链接或符号链接。以上我们描述了创建目录软链接的完整过程。此外,我们还解释了移除、定位和删除这些链接的方法。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

