标签 链接 下的文章

Obsidian 知识库工具的真正威力在于链接。学习使用它。

Obsidian 的最大卖点之一是其强大的文档链接和可视化。Obsidian 提供了多种链接文档和图像的方法。我们将逐一介绍。

你将在 Obsidian 中看到三种内部链接方法:

  • 拖放方式(简单但有限)
  • 使用 Markdown 链接
  • 使用维基链接(广泛且强大)

我还将分享一些有关使用图表和反向链接的技巧。让我们来看看它。

非自由和开源软件警告! Obsidian 不是开源软件,我们知道这一事实。然而,它是一种在编码人员(包括开源开发人员)中非常流行的工具。这就是我们介绍它的原因。

方法 1:通过拖放链接

是的,这是最简单的链接。转到要在其中创建链接的文档。现在,在左侧边栏上,展开该特定文件夹,其中包含目标注释。

要创建链接,只需将此目标文件拖放到你希望链接显示的位置即可。

通过拖放添加链接

你可以稍后更改链接文本。

方法 2:使用 Markdown 链接

由于 Obsidian 使用 Markdown 作为其核心,因此可以通过输入传统的 Markdown 命令进行链接。

比方说,你必须在 “Markdown Advanced” 页面中创建一个指向 “Markdown Checklist” 页面的链接。首先,你需要记下要链接到的文件的位置。

然后,只需添加这一行:

[链接文本](文件的相对路径)

或者,如果你有要链接的文件,并且想要提供系统中的绝对路径,请使用:

[链接文本](file://绝对路径)

使用绝对路径链接

? 如果你 使用 Markdown 链接,请确保文件和文件夹的名称中没有空格,因为这在某些情况下可能会引起一些麻烦。

方法 3:使用紧凑型维基链接来链接页面

Obsidian 支持使用 维基链接 Wikilink 来链接页面的直观方式。它们是紧凑的链接并且是交互式链接。默认情况下,此功能处于打开状态。

如果你想知道,是的,它与维基百科有关。他们用它来内部链接他们的维基页面。

添加内部注释的链接

要创建链接,只需输入 [[。这将启动一个交互式对话框,你可以在其中搜索要链接的文档。

添加交互式维基链接

? 你可以使用 [[link|要显示的文本]]使自定义文本显示在维基链接上。例如 [[notes/hello.md|这是 Hello 文件的链接]]

添加图像文件

此外,你可以使用此链接方法添加其他文件,例如图像,但在使用 [[ 搜索之前需要添加 ! 符号。请看下图以了解其实际效果。

使用维基链接添加图像

添加内部标题链接

有一种方法可以在同一页面的各个标题之间创建内部链接。为此,首先输入 [[,然后使用 Markdown 标题语法和要链接的特定标题的名称。

例如,如果你打算链接到文档中的第六个标题(2 级标题),请使用:

[[##Paragraph Six

这将显示在交互式选择中。

链接到标题

? 你可以将鼠标悬停在链接上时按 CTRL 键来进行预览。

添加指向文本块的链接

Obsidian 允许你创建指向文档中特定文本块的链接。为此,首先,转到要添加链接的块的最末尾。

现在,使用 ^ 符号向该块添加唯一标识符。

向块添加唯一标识符

现在,你可以通过输入 [[^ 来添加到此部分的链接。这将自动提示你可用的块。选择一项并按回车键。

添加链接到块

维基链接的问题

有时,如果你想要纯 Markdown 文档,并且专注于多个 Markdown 编辑器之间的互操作性,那么维基链接功能可能会产生问题。

由于这些在 Obsidian 内部工作,因此链接在其他编辑器上显示为损坏。在这种情况下,你可以关闭维基链接。一切都完美无缺,只是链接现在将以 Markdown 格式显示。

为此,首先选择左下角的设置按钮。

点击设置

现在,从 “ 文件和链接 Files and Links ” 选项卡关闭维基链接功能。

关闭维基链接功能

组织附件文件的提示

对于那些在 Obsidian 中附加许多文件的人,建议在每本书下为这些附件创建一个单独的文件夹。

现在,打开 “ 设置 Settings > 文件和链接 Files and Links ”。在这里,首先,你需要确保链接路径是相对于文件位置的。然后,将新附件的默认位置设置为 “ 当前文件夹下的子文件夹 Subfolder under current folder ”。现在,在下一个字段中指定 “ 附件 Attachments ”,即 “ 子文件夹名称 Subfolder name ”。

设置附件文件夹位置

就是这样。从现在开始,当你通过复制和粘贴放置任何附件时,它们将自动放置在该笔记文件夹内的“附件”文件夹中。新链接将在任何 Markdown 编辑器之间完美地互操作,因为路径现在是相对于文件位置的。

? 即使此维基链接功能已关闭,你仍然可以使用 [[ 键以交互方式搜索和添加链接。变化是,现在链接不再是紧凑的,而是长 Markdown 链接。

此外,你还可以打开 “ 自动更新内部链接 Automatically Update Internal Links ” 按钮,以确保在重命名文件时自动更新链接。

使用图表和反向链接

创建完链接后,就可以通过链接查看笔记之间的其他笔记之间的关系。单击侧面的图表视图按钮即可进入图表预览。

Obsidian 中的图表视图

正如你所看到的,你将在一个整洁的图表上获得该注释的链接。如果你按空白选项卡上的图表视图,你将获得所有笔记及其关系。

Notes Vault 示例的一些链接示例

此外,每个笔记都有一 “传出链接” 和 “传入链接” 选项卡,你可以在其中跟踪相关链接。

传出和传入链接

总结

正如你所看到的,虽然在 Obsidian 中创建指向其他页面的内部链接很简单,但通过维基链接,你可以创建更加个性化和定制的知识库。

对于那些不喜欢 Obsidian 闭源性质的人来说,Logseq 是一个不错的选择。

(题图:DA/57173f4d-5548-471f-8d70-a48e3b5e964a)


via: https://itsfoss.com/obsidian-create-links/

作者:Sreenath 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

链接一直是 UNIX 文件系统的一个独特的高级功能。

 title=

UNIX 和 Linux 用户发现链接有很多用途,特别是符号链接。我喜欢使用符号链接的一种方式是管理各种 IT 设备的配置备份。

我有一个目录结构,用来存放我的文档、更新及网络上其他和计算机和设备有关的文件。设备可以包括路由器、接入点、NAS 服务器和笔记本电脑,通常有不同的品牌和版本。配置备份本身可能在目录树的深处,例如 /home/alan/Documents/network/device/NetgearRL5000/config

为了简化备份过程,我在主目录中有一个名为 Configuration 的目录。我使用这个目录的符号链接来指向特定的设备目录:

:~/Configuration/ $ ls -F1
Router@
Accesspoint@
NAS@

注意ls 命令的 -F 选项在每个文件名上附加特殊字符以表示其类型。如上所示,@ 符号表示这些是链接。

创建一个链接

符号链接 Router 指向我的 Netgear RL5000 的 config 目录。创建它的命令是 ln -s

$ ln -s /home/alan/Documents/network/device/NetgearRL5000/config Router

然后,用 ls -l 看一下并确认:

:~/Configuration/ $ ls -l
Router -> /home/alan/Documents/network/device/NetgearRL5000/config
NAS -> /home/alan/Documents/network/device/NFSBox/config
...

这样做的好处是,当对这个设备进行维护时,我只需进入 ~/Configuration/Router

如果我决定用一个新的型号替换这个路由器,使用符号链接的第二个好处就很明显了。我可能会把旧的路由器改成一个接入点。因此,它的目录并没有被删除。相反,我有一个新的目录,对应于新的路由器,也许是华硕 DF-3760。我创建这个目录并确认它的存在:

$ mkdir -p ~/Documents/network/device/ASUSDF-3760/config
:~/Documents/network/device/ $ ls
NetgearRL5000
ASUSDF-3760
NFSBox
...

另一个例子是,如果你的办公室里有几个接入点。你可以使用符号链接在逻辑上代表每一个,用一个通用的名字,如 ap1ap2,等等,或者你可以使用描述性的词语,如 ap_floor2ap_floor3,等等。这样,当物理设备随时间变化时,你不必持续更新任何可能管理它们的进程,因为它们是在处理链接而不是实际的设备目录。

更新一个链接

由于我的主路由器已经改变,我想让路由器的符号链接指向它的目录。我可以使用 rmln 命令来删除和创建一个新的符号链接,但是有一种方法可以只用 ln 命令和几个选项就可以一步完成:

:~/Configuration/ $ ln -vfns ~/Documents/network/device/ASUSDF-3760/config/ Router
'Router' -> '/home/alan/Documents/network/device/ASUSDF-3760/config/'
:~/Configuration/ $ ls -l
Router -> /home/alan/Documents/network/device/ASUSDF-3760/config
NAS -> /home/alan/Documents/network/device/NFSBox/config

根据手册页,这些选项如下:

  • -v--verbose:打印每个链接文件的名称
  • -f--force:删除目标文件(有必要,因为已经存在一个链接)
  • -n--no-dereference:如果链接名是一个目录的符号链接,就把它当作一个正常的文件
  • -s--symbolic:制作符号链接而不是硬链接

总结

链接是 UNIX 和 Linux 文件系统中最强大的功能之一。其他操作系统也曾试图模仿这种能力,但由于他们的文件系统缺乏基本的链接设计,这些系统从来没有工作得那么好,也没有那么可用。

上面的演示只是利用链接在生活生产环境中无缝浏览不断变化的目录结构的众多可能性中的一种。链接提供了一个永远不会长期静态的组织所需的灵活性。


via: https://opensource.com/article/21/11/update-linux-file-system-link

作者:Alan Formy-Duval 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

链接 Link 是一种快捷访问机制,它通过一个文件指向原始文件或目录的方式实现快捷访问,同时还记录了原始文件或目录的一些信息。

链接允许多个不同文件对同一个文件进行引用。

什么是软链接

符号链接 Symbolic Link (symlink),又称 软链接 Soft Link ,是一种特殊的文件,它指向 Linux 系统上的另一个文件或目录。

这和 Windows 系统中的快捷方式有点类似,链接文件中记录的只是原始文件的路径,并不记录原始文件的内容。

符号链接通常用于对库文件进行链接,也常用于链接日志文件和 网络文件系统 Network File System (NFS)上共享的目录。

什么是硬链接

硬链接是原始文件的一个镜像副本。创建硬链接后,如果把原始文件删除,链接文件也不会受到影响,因为此时原始文件和链接文件互为镜像副本。

为什么要创建链接文件而不直接复制文件呢?

当你需要将同一个文件保存在多个不同位置,而且还要保持持续更新的时候,硬链接的重要性就体现出来了。

如果你只是单纯把文件复制到另一个位置,那么另一个位置的文件只会保存着复制那一刻的文件内容,后续也不会跟随着原始文件持续更新。

而使用硬链接时,各个镜像副本的文件内容都会同时更新。

软链接和硬链接的区别

下表列出了软链接和硬链接之间的区别。

#软链接硬链接
1软链接类似于 Windows 系统中的快捷方式硬链接是原始文件的一个镜像副本
2软链接又称符号链接硬链接没有别名
3链接中任何一个文件发生改变,都会同步到连接中的其它文件和软链接一样
4软链接可以跨文件系统进行创建硬链接不可以跨文件系统进行创建
5软链接可以指向文件或目录硬链接只能指向文件
6链接文件和原始文件之间的 inode 和文件权限不完全一致链接文件和原始文件的 inode 和文件权限完全一致
7链接文件只记录原始文件的路径,不记录原始文件的内容链接文件记录了原始文件的内容
8如果原始文件被移除,软链接就会因为指向不存在的文件而失效。这被称为“ 挂起链接 hanging link 即使原始文件被移除,链接文件也不受影响。
9通过 ln -s <原始文件> <链接文件> 命令创建软链接通过 ln <原始文件> <链接文件> 命令创建硬链接
10软链接文件的文件权限中有一个特殊标记 l硬链接文件没有特殊标记
11通过 find / -type l 命令可以查找软链接文件通过 find / -samefile <原始文件> 命令可以查找硬链接文件
12通过 symlinks <目录> 命令可以查找失效的软链接硬链接不存在失效链接

via: https://www.2daygeek.com/difference-between-soft-link-vs-hard-link-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:HankChow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

我们继续这个系列,来看一些你所不知道的微妙之处。

本系列的第一篇文章中,我们认识了硬链接、软链接,知道在很多时候链接是非常有用的。链接看起来比较简单,但是也有一些不易察觉的奇怪的地方需要注意。这就是我们这篇文章中要讲的。例如,像一下我们在前一篇文章中创建的指向 libblah 的链接。请注意,我们是如何从目标文件夹中创建链接的。

cd /usr/local/lib
ln -s /usr/lib/libblah

这样是可以工作的,但是下面的这个例子却是不行的。

cd /usr/lib
ln -s libblah /usr/local/lib

也就是说,从原始文件夹内到目标文件夹之间的链接将不起作用。

出现这种情况的原因是 ln 会把它当作是你在 /usr/local/lib 中创建一个到 /usr/local/lib 的链接,并在 /usr/local/lib 中创建了从 libblahlibblah 的一个链接。这是因为所有链接文件获取的是文件的名称(`libblah),而不是文件的路径,最终的结果将会产生一个坏的链接。

然而,请看下面的这种情况。

cd /usr/lib
ln -s /usr/lib/libblah /usr/local/lib

是可以工作的。奇怪的事情又来了,不管你在文件系统的任何位置执行这个指令,它都可以好好的工作。使用绝对路径,也就是说,指定整个完整的路径,从根目录(/)开始到需要的文件或者是文件夹,是最好的实现方式。

其它需要注意的事情是,只要 /usr/lib/usr/local/lib 在一个分区上,做一个如下的硬链接:

cd /usr/lib
ln libblah /usr/local/lib

也是可以工作的,因为硬链接不依赖于指向文件系统内的文件来工作。

如果硬链接不起作用,那么可能是你想跨分区之间建立一个硬链接。就比如说,你有分区 A 上有文件 fileA ,并且把这个分区挂载到 /path/to/partitionA/directory 目录,而你又想从 fileA 链接到分区 B 上 /path/to/partitionB/directory 目录,这样是行不通的。

ln /path/to/partitionA/directory/file /path/to/partitionB/directory

正如我们之前说的一样,硬链接是分区表中指向的是同一个分区的数据的条目,你不能把一个分区表的条目指向另一个分区上的数据,这种情况下,你只能选择创建一个软链接:

ln -s /path/to/partitionA/directory/file /path/to/partitionB/directory

另一个软链接能做到,而硬链接不能的是链接到一个目录。

ln -s /path/to/some/directory /path/to/some/other/directory

这将在 /path/to/some/other/directory 中创建 /path/to/some/directory 的链接,没有任何问题。

当你使用硬链接做同样的事情的时候,会提示你一个错误,说不允许那么做。而不允许这么做的原因量会导致无休止的递归:如果你在目录 A 中有一个目录 B,然后你在目录 B 中链接 A,就会出现同样的情况,在目录 A 中,目录 A 包含了目录 B,而在目录 B 中又包含了 A,然后又包含了 B,等等无穷无尽。

当然你可以在递归中使用软链接,但你为什么要那样做呢?

我应该使用硬链接还是软链接呢?

通常,你可以在任何地方使用软链接做任何事情。实际上,在有些情况下你只能使用软链接。话说回来,硬链接的效率要稍高一些:它们占用的磁盘空间更少,访问速度更快。在大多数的机器上,你可以忽略这一点点的差异,因为:在磁盘空间越来越大,访问速度越来越快的今天,空间和速度的差异可以忽略不计。不过,如果你是在一个有小存储和低功耗的处理器上使用嵌入式系统上使用 Linux, 则可能需要考虑使用硬链接。

另一个使用硬链接的原因是硬链接不容易损坏。假设你有一个软链接,而你意外的移动或者删除了它指向的文件,那么你的软链接将会损坏,并指向了一个不存在的东西。这种情况是不会发生在硬链接中的,因为硬链接直接指向的是磁盘上的数据。实际上,磁盘上的空间不会被标记为空闲,除非最后一个指向它的硬链接把它从文件系统中擦除掉。

软链接,在另一方面比硬链接可以做更多的事情,而且可以指向任何东西,可以是文件或目录。它也可以指向不在同一个分区上的文件和目录。仅这两个不同,我们就可以做出唯一的选择了。

下期

现在我们已经介绍了文件和目录以及操作它们的工具,你是否已经准备好转到这些工具,可以浏览目录层次结构,可以查找文件中的数据,也可以检查目录。这就是我们下一期中要做的事情。下期见。

你可以通过 Linux 基金会和 edX “Linux 简介”了解更多关于 Linux 的免费课程。


via: https://www.linux.com/blog/2018/10/understanding-linux-links-part-2

作者:Paul Brown 选题:lujun9972 译者:Jamkr 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

链接是可以将文件和目录放在你希望它们放在的位置的另一种方式。

除了 cpmv 这两个我们在本系列的前一部分中详细讨论过的,链接是可以将文件和目录放在你希望它们放在的位置的另一种方式。它的优点是可以让你同时在多个位置显示一个文件或目录。

如前所述,在物理磁盘这个级别上,文件和目录之类的东西并不真正存在。文件系统是为了方便人类使用,将它们虚构出来。但在磁盘级别上,有一个名为 分区表 partition table 的东西,它位于每个分区的开头,然后数据分散在磁盘的其余部分。

虽然有不同类型的分区表,但是在分区开头的那个表包含的数据将映射每个目录和文件的开始和结束位置。分区表的就像一个索引:当从磁盘加载文件时,操作系统会查找表中的条目,分区表会告诉文件在磁盘上的起始位置和结束位置。然后磁盘头移动到起点,读取数据,直到它到达终点,您看:这就是你的文件。

硬链接

硬链接只是分区表中的一个条目,它指向磁盘上的某个区域,表示该区域已经被分配给文件。换句话说,硬链接指向已经被另一个条目索引的数据。让我们看看它是如何工作的。

打开终端,创建一个实验目录并进入:

mkdir test_dir
cd test_dir

使用 touch 创建一个文件:

touch test.txt

为了获得更多的体验(?),在文本编辑器中打开 test.txt 并添加一些单词。

现在通过执行以下命令来建立硬链接:

ln test.txt hardlink_test.txt

运行 ls,你会看到你的目录现在包含两个文件,或者看起来如此。正如你之前读到的那样,你真正看到的是完全相同的文件的两个名称: hardlink_test.txt 包含相同的内容,没有填充磁盘中的任何更多空间(可以尝试使用大文件来测试),并与 test.txt 使用相同的 inode:

$ ls -li *test*
16515846 -rw-r--r-- 2 paul paul 14 oct 12 09:50 hardlink_test.txt
16515846 -rw-r--r-- 2 paul paul 14 oct 12 09:50 test.txt

ls-i 选项显示一个文件的 “inode 数值”。“inode” 是分区表中的信息块,它包含磁盘上文件或目录的位置、上次修改的时间以及其它数据。如果两个文件使用相同的 inode,那么无论它们在目录树中的位置如何,它们在实际上都是相同的文件。

软链接

软链接,也称为 符号链接 symlink ,它与硬链接是不同的:软链接实际上是一个独立的文件,它有自己的 inode 和它自己在磁盘上的小块地方。但它只包含一小段数据,将操作系统指向另一个文件或目录。

你可以使用 ln-s 选项来创建一个软链接:

ln -s test.txt softlink_test.txt

这将在当前目录中创建软链接 softlink_test.txt,它指向 test.txt

再次执行 ls -li,你可以看到两种链接的不同之处:

$ ls -li
total 8
16515846 -rw-r--r-- 2 paul paul 14 oct 12 09:50 hardlink_test.txt
16515855 lrwxrwxrwx 1 paul paul 8 oct 12 09:50 softlink_test.txt -> test.txt
16515846 -rw-r--r-- 2 paul paul 14 oct 12 09:50 test.txt

hardlink_test.txttest.txt 包含一些文本并且字面上占据相同的空间。它们使用相同的 inode 数值。与此同时,softlink_test.txt 占用少得多,并且具有不同的 inode 数值,将其标记为完全不同的文件。使用 ls-l 选项还会显示软链接指向的文件或目录。

为什么要用链接?

它们适用于带有自己环境的应用程序。你的 Linux 发行版通常不会附带你需要应用程序的最新版本。以优秀的 Blender 3D 设计软件为例,Blender 允许你创建 3D 静态图像以及动画电影,人人都想在自己的机器上拥有它。问题是,当前版本的 Blender 至少比任何发行版中的自带的高一个版本。

幸运的是,Blender 提供可以开箱即用的下载。除了程序本身之外,这些软件包还包含了 Blender 需要运行的复杂的库和依赖框架。所有这些数据和块都在它们自己的目录层次中。

每次你想运行 Blender,你都可以 cd 到你下载它的文件夹并运行:

./blender

但这很不方便。如果你可以从文件系统的任何地方,比如桌面命令启动器中运行 blender 命令会更好。

这样做的方法是将 blender 可执行文件链接到 bin/ 目录。在许多系统上,你可以通过将其链接到文件系统中的任何位置来使 blender 命令可用,就像这样。

ln -s /path/to/blender_directory/blender /home/<username>/bin

你需要链接的另一个情况是软件需要过时的库。如果你用 ls -l 列出你的 /usr/lib 目录,你会看到许多软链接文件一闪而过。仔细看看,你会看到软链接通常与它们链接到的原始文件具有相似的名称。你可能会看到 libblah 链接到 libblah.so.2,你甚至可能会注意到 libblah.so.2 相应链接到原始文件 libblah.so.2.1.0

这是因为应用程序通常需要安装比已安装版本更老的库。问题是,即使新版本仍然与旧版本(通常是)兼容,如果程序找不到它正在寻找的版本,程序将会出现问题。为了解决这个问题,发行版通常会创建链接,以便挑剔的应用程序相信它找到了旧版本,实际上它只找到了一个链接并最终使用了更新的库版本。

有些是和你自己从源代码编译的程序相关。你自己编译的程序通常最终安装在 /usr/local 下,程序本身最终在 /usr/local/bin 中,它在 /usr/local/bin 目录中查找它需要的库。但假设你的新程序需要 libblah,但 libblah/usr/lib 中,这就是所有其它程序都会寻找到它的地方。你可以通过执行以下操作将其链接到 /usr/local/lib

ln -s /usr/lib/libblah /usr/local/lib

或者如果你愿意,可以 cd/usr/local/lib

cd /usr/local/lib

然后使用链接:

ln -s ../lib/libblah

还有几十个案例证明软链接是有用的,当你使用 Linux 更熟练时,你肯定会发现它们,但这些是最常见的。下一次,我们将看一些你需要注意的链接怪异。

通过 Linux 基金会和 edX 的免费 “Linux 简介”课程了解有关 Linux 的更多信息。


via: https://www.linux.com/blog/intro-to-linux/2018/10/linux-links-part-1

作者:Paul Brown 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

当我们在命令行上工作时,您可能需要在文件之间创建链接。这时,您可以可以借助一个专用命令,ln。本教程中,我们将通过一些简单易理解的例子来讨论此工具的基础知识。在此之前,值得一提的是,本教程所有例子都已在 Ubuntu 16.04 上测试通过。

Linux ln 命令

正如你现在所了解的,ln 命令能够让您在文件之间创建链接。下面就是 ln 工具的语法(或者使用其他一些可行的语法)。

ln [OPTION]... [-T] TARGET LINK_NAME (第一种形式)
ln [OPTION]... TARGET (第二种形式)
ln [OPTION]... TARGET... DIRECTORY (第三种形式)
ln [OPTION]... -t DIRECTORY TARGET... (第四种形式)

下面是 ln 工具 man 文档描述的内容:

在第一种形式下,为目标位置(TARGET)创建一个叫 LINK\_NAME 的链接。在第二种形式下,为目标位置(TARGET)在当前目录下创建一个链接(LCTT 译注:创建的为同名链接)。在第三和第四种形式中,在 DIRECTORY 目录下为每一个目标位置(TARGET)创建链接。默认创建硬链接,符号链接需要 --symbolic 选项。默认创建的每一个创建的链接(新链接的名字)都不能已经存在。当创建硬链接时,目标位置(TARGET)文件必须存在;符号链接可以保存任意文本,如果之后解析,相对链接的解析与其父目录有关。

通过下面问答风格的例子,可能会给你更好的理解。但是在此之前,建议您先了解 硬链接和软链接的区别.

Q1. 如何使用 ln 命令创建硬链接?

这很简单,你只需要像下面使用 ln 命令:

ln [file] [hard-link-to-file]

例如:

ln test.txt test_hard_link.txt

如何使用 ln 命令创建硬链接

如此,您便可以看见一个已经创建好的,名为 test_hard_link.txt 的硬链接。

Q2. 如何使用 ln 命令创建软/符号链接?

使用 -s 命令行选项:

ln -s [file] [soft-link-to-file]

例如:

ln -s test.txt test_soft_link.txt

如何使用 ln 命令创建软/符号链接

test_soft_link.txt 文件就是一个软/符号链接,以天蓝色文本 标识

Q3. 如何使用 ln 命令删除既存的同名目标文件?

默认情况下,ln 不允许您在目标目录下创建已存在的链接。

ln 命令示例

然而,如果一定要这么做,您可以使用 -f 命令行选项覆盖此行为。

如何使用 ln 命令创建软/符号链接

提示:如果您想在此删除过程中有所交互,您可以使用 -i 选项。

Q4. 如何使用 ln 命令创建现有文件的同名备份?

如果您不想 ln 删除同名的现有文件,您可以为这些文件创建备份。使用 -b 即可实现此效果,以这种方式创建的备份文件,会在其文件名结尾处包含一个波浪号(~)。

如何使用 ln 命令创建现有文件的同名备份

Q5. 如何在当前目录以外的其它目录创建链接?

使用 -t 选项指定一个文件目录(除了当前目录)。比如:

ls test* | xargs ln -s -t /home/himanshu/Desktop/

上述命令会为(当前目录下的)所有 test* 文件创建链接,并放到桌面目录下。

总结

当然,尤其对于新手来说,ln 并不是日常必备命令。但是,这是一个有用的命令,因为你永远不知道它什么时候能够节省你一天的时间。对于这个命令,我们已经讨论了一些实用的选项,如果你已经完成了这些,可以查询 man 文档 来了解更多详情。


via: https://www.howtoforge.com/linux-ln-command/

作者:Himanshu Arora 译者:CYLeft 校对:Locez

本文由 LCTT 原创编译,Linux中国 荣誉推出