Linux 中创建快捷方式命令 ln 详解

前言

在 Linux / Unix 系统中,链接文件提供了一种方便的方式来访问已存在的文件,或者共享一个文件给多个用户。Linux 命令 ln 可以创建两种类型的链接文件:硬链接和符号链接。本文将全面详细讲解 Linux 命令 ln 的使用方法,并且提供多个实例。

1. 概述

ln 命令可以在 Linux 中创建链接文件。链接文件就像是一个别名,它们指向另外一个文件或目录,并且有自己的名称和位置。链接文件分为两类:硬链接和符号链接。

硬链接与原始文件指向相同的数据块,在同一文件系统中,硬链接与原始文件共享 inode(索引节点),可以看作是对同一个文件的两种访问方式。硬链接不能被建立到目录上,而且不能跨越物理设备或文件系统。

符号链接(也被称为软链接)是一个特殊的类型的文件,包含另一个文件的路径名。符号链接文件拥有自己的 inode,并且在不同文件系统和物理设备之间移动一个目标的位置时,符号链接可用于跨越文件系统进行操作。符号链接的目标可以是目录和文件,但是当它指向的是一个目录时,要注意一些问题,因为符号链接会创建一个新的文件名,并不是原来的目录。

2. 命令语法

ln 命令语法如下所示:

ln [OPTION]... [-T] TARGET LINK_NAME
ln [OPTION]... TARGET... DIRECTORY
ln [OPTION]... TARGET... LINK_DIRECTORY

其中,TARGET 是被链接文件的路径名或多个路径名。LINK_NAME 是新链接文件的名称,可选参数。DIRECTORY 是需要将 TARGET 文件链接到其中的目录。

常用参数解释:

  • -s:创建符号链接;
  • -f:强制执行,覆盖现有文件;
  • -i:如果文件存在,提示用户确认是否覆盖文件;
  • -n:允许建立指向不存在文件的链接;
  • -v:详细输出信息。

3. 实例说明

为了更好地理解 ln 命令的使用方法,下面给出一些实例来说明 ln 命令的具体应用。首先,我们需要准备一些文件,以便后面的实例可以参考它们。

3.1 实例 1:创建硬链接并删除原始文件

这个实例演示如何使用 ln 命令创建硬链接,并且当删除原始文件时硬链接仍然能够访问目标文件。

首先,我们创建一个名为 testfile.txt 的文件:

$ echo "This is a test file." > testfile.txt
$ cat testfile.txt
This is a test file.

然后,我们使用 ln 命令创建一个硬链接。

$ ln testfile.txt hard_link

在上面的例子中,我们创建了一个名为 hard_link 的硬链接。注意,在创建硬链接时我们不需要指定 -s 选项。

接着,我们删除原始文件 testfile.txt,然后查看硬链接的内容:

$ rm testfile.txt
$ cat hard_link
This is a test file.

可以看到,当我们删除原始文件之后,硬链接仍然可以访问指向的文件内容。

3.2 实例 2:创建符号链接

这个实例演示如何使用 ln 命令创建符号链接。

首先,我们创建一个名为 testfile.txt 的文件:

$ echo "This is a test file." > testfile.txt
$ cat testfile.txt
This is a test file.

接着,我们使用 ln 命令创建一个符号链接。

$ ln -s testfile.txt symbolic_link

在上面的例子中,我们创建了一个名为 symbolic_link 的符号链接文件。注意,在创建符号链接时需要使用 -s 选项。

接下来,我们将删除原始文件 testfile.txt,然后查看符号链接的内容:

$ rm testfile.txt
$ cat symbolic_link
cat: symbolic_link: No such file or directory

可以看到,当我们删除原始文件之后,符号链接不能够访问指向的文件内容。

3.3 实例 3:覆盖现有文件

这个实例演示了如果使用 ln 命令覆盖现有文件。

首先,我们创建两个文件:

$ echo "This is file 1." > file1.txt
$ echo "This is file 2." > file2.txt
$ cat file1.txt
This is file 1.
$ cat file2.txt
This is file 2.

接下来,我们使用 ln 命令将 file2.txt 重命名为 file1.txt,以覆盖原始的 file1.txt

$ ln -f file2.txt file1.txt

在上面的例子中,-f 选项表示强制执行,覆盖现有文件。这样,现在 file1.txt 的内容变为了 This is file 2.,因为它被链接到 file2.txt

3.4 实例 4:在目录中创建链接

这个实例演示如何在目录中使用 ln 命令创建链接文件。

首先,我们创建一个目录 test_dir

$ mkdir test_dir

然后,我们创建一个文件 testfile.txt

$ echo "This is a test file." > testfile.txt
$ cat testfile.txt
This is a test file.

现在,我们使用 ln 命令将文件 testfile.txt 链接到目录 test_dir

$ ln testfile.txt ./test_dir

在上面的例子中,我们使用相对路径 ./test_dir 指定了链接文件的位置。

接下来,我们进入目录 test_dir,查看是否可以访问链接文件:

$ cd test_dir/
$ cat ../testfile.txt
This is a test file.

可以看到,我们可以在目录 test_dir 中访问链接文件 testfile.txt

3.5 实例 5:链接多个文件

这个实例演示如何使用 ln 命令链接多个文件。

首先,我们创建两个文件:

$ echo "This is file 1." > file1.txt
$ echo "This is file 2." > file2.txt
$ cat file1.txt
This is file 1.
$ cat file2.txt
This is file 2.

然后,我们使用 ln 命令将多个文件链接到一个目录:

$ mkdir test_dir
$ ln file1.txt file2.txt test_dir/

在上面的例子中,我们使用 ln 命令将两个文件 file1.txtfile2.txt 链接到目录 test_dir

接下来,我们进入目录 test_dir,查看是否可以访问链接文件:

$ cd test_dir/
$ ls
file1.txt file2.txt
$ cat file1.txt
This is file 1.
$ cat file2.txt
This is file 2.

可以看到,我们成功地将两个文件链接到了目录 test_dir

你可能感兴趣的:(Linux,linux,服务器,运维)