如何在 Linux 上创建指向目录的软链接?
软链接(符号链接)被生成作为系统中可用文件或文件夹的快捷方式。通常,这些软链接用于链接库。软链接允许在不同的文件系统或目标位置存储同一文档的多个克隆。
此链接引用原始文档的路径和地址。软链接包含不同的方面,例如 -
软链接可以链接到目录和普通文件。
删除软链接后,原始文档仍然可用。
当您移动或删除原始文件时,符号链接不起作用。
软链接通常用于常用文件,因此您可以快速访问这些文件,而无需键入整个位置。
软文件和实际链接文件的 inode 号码不同。
软链接的功能类似于网络上的超链接。如果您还想在 Linux 上创建指向目录的软链接,请遵循本指南。
如何在 Linux 上创建指向目录的软链接?
“ln”是一个命令行实用程序,用于在文件或文件夹之间创建链接。默认情况下,它创建硬链接。使用 ln 命令的 -s 或 --symbolic 选项,您可以在 Linux 上创建指向目录的软链接。以下是您可以遵循的 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 <targeted soft_link directory/file name> <soft_link name>
让我们使用一些示例来更好地理解软链接的创建。
~$: 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 Feb 21 13:01 Downloads/example.txt -> /home/prateek Documents example.txt
额外提示 - 在上面的命令中,我们使用了绝对路径,这很容易且推荐。但是,您必须正确地澄清路径。为此,您可以运行以下命令以使软链接目录成为终端的当前目录 -
~$: cd ~/Downloads ~$: ln -s /home/prateek/Documents/example.txt
为文件创建指向不同名称目录的软链接
在此示例中,我们将在 Downloads 目录中创建指向 Documents 目录的软链接,命名为 Documents1。在这里,我们将遵循上述命令,然后提及您要创建链接的名称。它的命令将类似于这样 -
~$: ln -s /home/prateek/Documents Downloads/Documents1 ~$: ls -l Downloads/Documents1 ~$: lrwxrwxrwx 1 prateek prateek 23 Feb 21 13:21 Downloads/Documents1 -> /home/prateek Documents
这样,您可以为文件创建指向具有不同链接名称的目录的软链接文件。
软链接的权限
当我们更改软链接的权限时,它会通过 chmod 命令的帮助转发到目标目录或文件。发生这种情况是因为 chmod 命令将权限更改应用于目标目录,无论更改是否成功。因此,
所有软链接始终允许为 0777/lrwxrwxrwx。
软链接权限永远无法更改。
覆盖软链接
当创建已存在的软链接时,ln 命令会打印错误消息(无法创建软链接)。
使用 ln 命令的 -f 或 --force 选项,您可以覆盖软链接的目标路径并解决此错误。
ln -sf <path of the source file/directory> <path of the target file/directory>
注意 - 在更新版本的 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 <path of the file/directory> -xtype l
因此,此命令将显示目录或文件中所有损坏的软链接。您可以通过向上述命令添加 -删除选项来一次删除所有损坏的链接。
删除软链接
软链接也像普通文件一样,您可以使用 rm 命令删除它们。除此之外,Linux 还提供了一个名为 unlink 的单独实用程序来删除软链接,您可以使用它来删除软链接。
您不需要任何参数即可使用 unlink 命令删除软链接。请按照以下命令删除软链接 -
~$: unlink <path of the soft link>
在这里,我们将使用 Downloads 目录取消链接 example.txt 文件 -
~$: unlink /home/prateek/Documents/example.txt
此外,您还可以使用 rm 命令删除软链接。与 unlink 命令相比,rm 命令的优势在于您可以一次删除多个软链接 -
~$: rm <path of the file/directory> soft link1 softlink2
结论
使用软链接,您可以从多个位置访问任何文件或目录。使用 ln 命令的 -s 选项,您可以在 Linux 中创建软链接或符号链接。在这里,我们描述了创建指向目录的软链接的完整过程。此外,我们还解释了删除、定位和删除这些链接的方法。