如何在Linux上创建目录软链接?
生成软链接(符号链接或符号链接)作为系统中可用文件或文件夹的快捷方式。通常,这些软链接用于链接库。软链接允许在不同的文件系统或目的地中存储同一文档的多个克隆。
该链接指的是原始文档的路径和地址。软链接包含不同的方面,例如 -
软链接可以链接到目录和常规文件。
删除软链接后,原始文档仍然可用。
当您移动或删除原始文件时,符号链接不起作用。
软链接通常适用于经常使用的文件,因此您可以快速访问这些文件,而无需键入整个位置。
软文件和实际链接文件的inode编号不同。
软链接的功能与网络上的超链接类似。如果您还想在 Linux 上创建目录的软链接,请遵循本指南。
如何在 Linux 上创建目录软链接?
“ln”是一个命令行实用程序,可在文件或文件夹之间创建链接。默认情况下,它会创建硬链接。将 -s 或 --symbolic 选项与 ln 命令一起使用,可以创建指向 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'
创建文件到同名目录的软链接
这里,我们在文档目录中有一个文件“example.txt”,并将在下载目录中链接该文件 -
~$: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 目录中名为 Documents1 的 Documents 目录的软链接。在这里,我们将遵循上述命令,然后提及您要创建链接的名称。它的命令是这样的 -
~$: 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 <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
结果,该命令将显示目录或文件中所有损坏的软链接。您可以通过在上述命令中添加 -delete 选项来一次性删除所有损坏的链接。
删除软链接
软链接也像常规文件一样,您可以借助 rm 命令将其删除。除此之外,Linux还提供了一个名为unlink的单独实用程序来删除软链接,借助它您可以删除软链接。
使用 unlink 命令删除软链接不需要任何参数。按照以下命令删除软链接 -
~$: unlink <path of the soft link>
在这里,我们将取消 example.txt 文件与下载目录的链接 -
~$: unlink /home/prateek/Documents/example.txt
此外,还可以使用rm命令删除软链接。 rm 命令相对于 unlink 的优点是您可以一次删除多个软链接 -
~$: rm <path of the file/directory> soft link1 softlink2
结论
通过软链接,您可以从多个位置访问任何文件或目录。使用 ln 命令的 -s 选项,您可以在 Linux 中创建软链接或符号链接。这里我们描述了创建目录软链接的完整过程。此外,我们还解释了移除、定位和删除这些链接的方法。