网站搜索

如何在 Linux 中创建硬链接和符号链接


在 Linux 等类 Unix 操作系统中,“一切都是文件”,文件本质上是指向 inode 的链接(一种数据结构,除了文件名称和实际内容之外,还存储有关文件的所有内容)。

硬链接是一个与另一个文件指向相同底层 inode 的文件。如果您删除一个文件,它会删除一个指向底层索引节点的链接。而符号链接(也称为软链接)是指向文件系统中另一个文件名的链接。

另请阅读:如何执行文件和目录管理

两种类型链接之间的另一个重要区别是硬链接只能在同一文件系统中工作,而符号链接可以跨不同文件系统。

如何在 Linux 中创建硬链接

要在 Linux 中创建硬链接,我们将使用 ln 实用程序。例如,以下命令创建一个指向文件 topprocs.sh 的名为 tp 的硬链接。

ls -l
ln topprocs.sh tp
ls -l

查看上面的输出,使用 ls 命令,新文件不会指示为链接,而是显示为常规文件。这意味着 tp 只是另一个常规可执行文件,它指向与 topprocs.sh 相同的底层 inode。

要将硬链接直接转换为软链接,请使用 -P 标志,如下所示。

ln -P topprocs.sh tp

如何在 Linux 中创建符号链接

要在 Linux 中创建符号链接,我们将使用相同的 ln 实用程序-s 开关。例如,以下命令创建一个名为 topps.sh 的符号链接,指向文件 topprocs.sh

ln -s ~/bin/topprocs.sh topps.sh
ls -l topps.sh

从上面的输出中,您可以从文件权限部分看到 topps.sh 是由 l: 指示的链接,这意味着它是指向另一个文件名的链接。

如果符号链接已经存在,您可能会收到错误消息,要强制执行该操作(删除现有的符号链接),请使用 -f 选项。

ln -s ~/bin/topprocs.sh topps.sh
ln -sf ~/bin/topprocs.sh topps.sh

要启用详细模式,请添加 -v 标志以打印输出中每个链接文件的名称。

ln -sfv ~/bin/topprocs.sh topps.sh
$ls -l topps.sh

就是这样!请查看以下相关文章。

  1. fdupes – 在 Linux 中查找和删除重复文件的命令行工具
  2. 在 Linux 中管理文件类型和系统时间的 5 个有用命令

在本文中,我们学习了如何在 Linux 中创建硬链接和符号链接。您可以通过下面的反馈表提出任何问题或分享您对本指南的看法。