在Linux或Unix中如何创建硬链接

时间:2019-11-20 08:53:17  来源:igfitidea点击:

在Linux/UNIX/Apple Mac OS X/BSD操作系统中如何使用命令创建硬链接?

Linux/UNIX都允许文件的数据在同一文件系统中的不同位置具有多个名称。对于同一数据,具有多个名称的此类文件称为硬链接文件。硬链接到文件与原始目录条目没有区别。对文件的任何更改实际上都独立于用于引用文件的名称。硬链接通常可能不指向目录,并且可能不会跨越文件系统。

如何在Linux或Unix中创建硬链接

  • 创建硬链接 ln sfile1file link1file
  • 创建符号链接(软链接)ln -s source link
  • 查看软链接或硬链接ls -l source link

在Linux上创建硬链接

ln命令用于在文件之间建立链接。
默认情况下,ln创建的是硬链接。

ln命令语法

Unix/Linux创建硬链接命令的语法如下:

ln {source} {link}
ln /path/to/source /path/to/link
ln target link
ln target directory

其中

  • source是一个现有文件。
  • link是要创建的文件(硬链接)。

为foo文件创建硬链接:

echo 'This is a test' > foo
ln foo bar
ls -li bar foo

输出示例:

21233953 -rw-r--r-- 2 root root 15 Oct  1 15:30 bar
21233953 -rw-r--r-- 2 root root 15 Oct  1 15:30 foo

其中:

  • 21233953:Inode。可以看到inode是相同的。
  • 2:文件的硬链接数显示在第三栏中。说明有两个文件名执行这块数据

如何在Linux或Unix上删除硬链接?

rm命令用于删除Linux或Unix上的文件,包括硬链接。

但是,只要还存在另一个硬链接,数据仍然可以访问。
要清除数据,必须删除所有硬链接。

使用rm命令:

rm bar
ls -li bar foo
rm foo
ls -li bar foo

Linux和Unix上的硬链接限制

大多数现代操作系统不允许在目录上进行硬链接,以防止无限递归。硬链接的另一个缺点是它们必须位于同一文件系统中

如何在Linux或Unix中创建符号链接(软链接)

语法如下:

ln -s source link
ln -s /path/to/foo/ /path/to/link
ln -v /path/to/foo/ /path/to/link

创建两个软链接:

$ ln -sv test bar
$ ln -sv test foo

验证一下:

$ ls -li test bar foo