有时 ,在使用命令行时,可能需要在文件之间创建链接。这可以使用名为 ln 的专用命令来实现。在本教程中,我们将使用一些易于理解的示例来讨论该工具的基础知识。
ln 命令允许在文件之间建立链接,以下是该命令的语法(或者更确切地说是可用的不同语法):
ln [OPTION]... [-T] TARGET LINK_NAME (第一种形式)
ln [OPTION]... TARGET (第二种形式)
ln [OPTION]... TARGET... DIRECTORY (第三种形式)
ln [OPTION]... -t DIRECTORY TARGET... (第四种形式)
对于 ln 命令语法说明如下:
- 在第一种形式中,是创建一个指向 TARGET 的链接,名称为 LINK_NAME
- 在第二种形式中,创建一个链接到当前目录中的 TARGET
- 在第三种和第四种形式中,创建指向每个目标的链接目录
默认 ln
命令会创建硬链接,使用 –symbolic
参数则会创建符号链接。 默认情况下,每个目的链接(新链接的名称)不应已存在。 创建硬链接时,每个TARGET 必须存在。符号链接可以保存任意文本,则相对链接是相对于其父目录进行解释。
示例1、使用 ln
命令来创建硬链接
这个操作非常简单,所要做的就是按以下方式使用 ln 命令:
ln [file] [hard-link-to-file]
例如:
ln test.txt test_hard_link.txt
可以看出来,创建硬链接会创建一个与原文件相同的文件。
示例2、使用 ln
命令来创建软件链接(符号链接)
创建软链接,则使用 -s
参数即可:
ln -s [file] [soft-link-to-file]
例如:
ln -s test.txt test_soft_link.txt
文件 test_soft_link.txt
是一个软链接,可以看出它是指向 test.txt 文件的。
示例3、如何让 ln
删除现有的同名目标文件
默认情况下,如果目标目录中已存在同名文件,则 ln
不会创建链接。如果确定需要创建该链接,则可以使用 -f
参数强制创建链接:
ln -s -f -i test.txt test_soft_link.txt
注意:命令中使用 -i
参数会提示是否覆盖之前的文件。
示例4、如何使 ln
创建同名现有文件的备份
如果不希望 ln
删除同名的现有文件,可以让它创建这些文件的备份。这可以使用 -b 选项来实现。以这种方式创建的备份文件将在其名称末尾包含波浪号 (~)指明:
ln -s -b test.txt test_soft_link.txt
示例5、如何在当前目录以外的目录中创建链接
可以使用 -t
命令行选项指定特定的目标目录(当前目录除外), 示例如下:
ls test* | xargs ln -s -t /home/himanshu/Desktop/
上述命令将创建指向所有 test* 文件(当前目录中存在)的链接,并将它们放在桌面目录中。