Linux 不同站点共享目录的设置(IIS里叫虚拟目录)

2014年05月07日 01:30 by:老修

导读: 熟悉IIS的朋友知道同一服务器下的不同网站可以用建立虚拟目录的方式来共用同一个文件夹, Linux服务器里怎么设置多站点公用的虚拟目录呢? linux里不叫虚拟目录而叫做"同步连接".

多站点公用同一个文件夹目录的场合非常多, 比如: www.lao8.org 和 m.lao8.org 公用同一个upload文件夹, 在iis里面只要建立一个虚拟目录就可以了, 而在Linux里可以用 ln 命令来建立"同步连接". 

Linux 服务器中的 ln 命令的是给"a文件夹"在别的位置建立一个同步的"a文件夹链接",这个命令最常用的参数是-s ,(symbolic)的意思, 相当于windows 下的快捷方式。

ln命令的用法举例:

  1. ln -s 源文件 目标位置(或目标文件名)
  2. //目录要用绝对路径, 不然有可能生成的链接文件无法正确找到链接目标。

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放拷贝相同的文件,只要用ln命令建立一个同步连接(虚拟目录)就可以。例如web_b目录要公用web_a文件夹里面的upload文件夹, 在ssh命令行里运行下面的命令就可以看到web_b目录里多了个upload文件夹, 其实这只是个同步连接.

  1. ln -s /home/weba/upload /home/webb/upload

这里有三点要注意:

第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;   

第二,ln的链接分为软链接和硬链接两种,软链接就是ln -s ** **, 它只会在b位置生成一个文件的镜像,不会占用磁盘空间; 硬链接ln ** **, 没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链 接还是硬链接,文件都保持同步变化。  

第三,软链接是可以跨分区的,但是硬链接只能在同一分区内。 

可以用ls -l 命令去察看这个同步连接的属性.

ln命令不仅仅可以同步文件夹, 文件也可以同步共享的.

硬链接和软连接有什么区别? 各有什么好处?

  1. ln –s a.txt b.txt (生成b.txt 为 a.txt 的软链接)
  2. ln a.txt c.txt (生成c.txt 为 a.txt 的硬链接)

相同点: 修改硬链接(b.txt)和软链接(c.txt)文件都是直接操作了原文件(a.txt).

不同点: 

  1. 硬链接相当于给文件作了一个备份。当不小心将原文件(a.txt)删除了,仍然可以通过硬链接文件(c.txt)找到并操作它。
  2. 软链接相当于给文件(a.txt)作了一个快捷方式。原文件(a.txt)那么b.txt也就没了
  3. 硬链接不能垮分区
  4. 软链接可以跨区链接

另外要注意的是打包备份的时候因为软链接就相当于windows下的快捷方式, 要注意别只备份了个快捷方式。

删除连接的命令

  1. rm -rf 连接名
千万要注意连接名后面不带斜杠.