ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,具体用法是:

1
ln –s 源文件 目标文件

  当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:../intv_vendor ./vendor

这里有两点要注意

  1. __ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化__;
  2. ln的链接分软链接和硬链接两种
    1. 软链接就是ln –s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间
    2. 硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
    3. 不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间

  如果用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls –l命令去察看,就可以看到显示的link的路径了。

使用方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ln [options] source dist
//option 的格式为
[-bdfinsvF]
[-S backup-suffix]
[-V {numbered,existing,simple}]
[--help]
[--version]
[--]

-f : 链结时先将与 dist 同档名的档案删除
-d : 允许系统管理者硬链结自己的目录
-i : 在删除与dist同档名的档案时先进行询问
-n : 在进行软连结时,将 dist视为一般的档案
-s : 进行软链结(symbolic link)
-v : 在连结之前显示其档名
-b : 将在链结时会被覆写或删除的档案进行备份
-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
-V METHOD : 指定备份的方式
--help : 显示辅助说明
--version : 显示版本

范例

  将档案 yy 产生一个 symbolic link : zz
  

1
ln -s yy zz

  将档案 yy 产生一个 hard link : zz
  
1
ln yy xx