0%

Linux 及 Mac 上的文件链接

何谓文件链接

某一个文件或某一个文件夹在另外一个位置存在的一个同步链接。
那么文件链接有何优势呢?简单来说,文件链接可以帮助我们更容易的管理一些散落在系统各个层级的文件。
在游戏插件,或是库开发的时候极其方便,编译文件夹直接链接到实际调用的地方,程序/游戏就能自动读取开发中的资源了。

文件链接分类

软链接

  1. 软链接,以路径的形式存在。类似于 Windows 操作系统中的 Junction。
  2. 软链接可以做到跨文件系统,硬链接不可以。
  3. 软链接可以对一个不存在的文件名进行链接。
  4. 软链接可以对目录进行链接

硬链接

  1. 硬链接,以文件副本的形式存在。但不占用实际空间
  2. 不允许给目录创建硬链接。
  3. 硬链接只有在同一个文件系统中才能创建。

创建一个文件链接

在 Linux 以及 macOS 中,我们可以通过「ln」命令来快速创建一个方便的文件链接。

命令格式

1
ln [参数][源文件或目录][目标文件或目录]

必要参数

参数 对应操作
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
### 选择参数
参数 说明
—- ————————————–
-S 「-S <字尾备份字符串>」或「-suffix=<字尾备份字符串>」
-V 「-V <备份方式>」或「-version-control=<备份方式>」
-help 显示帮助信息
-version 显示版本信息

实际操作

本站是基于 Hexo 的,Hexo 程序存放于
/Documents/workspace/blog」之中,那么为了简化我打开终端后的操作,我就在我的「」下创建一个文件链接来链接到我的文件夹。
注意 源文件/源文件夹需要使用绝对路径!

1
ln -sn /Users/zhoufang/blog ~/Documents/workspace/blog

然后我们进入「blog」文件夹查看。

1
2
3
cd blog && ls
_config.yml node_modules public source
db.json package.json scaffolds themes

可以发现,我们已经进入了位于「workspace」之下的「blog」。