符号链接现实世界的例子

时间:2011-02-21 08:29:56

标签: php

我正在阅读php函数,但我遇到了symlink,但我真的无法抓住它在实际应用程序开发中的用法。有人可以用现实世界的例子来解释我吗?

由于

5 个答案:

答案 0 :(得分:4)

假设您的src目录中有一个$HOME文件夹,其中存储了您的来源。当您打开新shell时,通常在shell启动时输入$HOME目录。这可能是一个常见的步骤,每当您打开一个新的shell时,您希望之后进入目录~/src/very_long_project_name

这是符号链接发挥作用的地方:您可以在$HOME目录中创建一个符号链接(例如,名为vlpn,直接指向~/src/very_long_project_name

下次打开控制台时,只需键入cd vlpn而不是cd src/very_long_project_name即可。而已。没有PHP具体。就像giraffgnur已经说过的那样。

答案 1 :(得分:3)

管理员可以创建符号链接来安排存储而不会弄乱文件系统;例如Web镜像可能托管了数千个站点,并安装了数十个磁盘:

/mnt/disk1/
/mnt/disk2/
...

并希望将数据存储在/var/www/htdocs/中,而无需用户关心哪个磁盘保存其数据。

/var/www/htdocs/debian -> /mnt/disk1/debian
/var/www/htdocs/ubuntu -> /mnt/disk2/ubuntu
/var/www/htdocs/centos -> /mnt/disk9/centos

其次,您可能有'最新上传';您的用户正在上传照片或软件包,并且您希望http://example.com/HOT_STUFF始终是最新上传的照片。您可以设置symlink($new_upload, $HOT_STUFF);,用户永远不会需要超过一个网址来查看最新内容。

第三,Debian和Ubuntu使用update-alternatives机制允许一次安装多个版本的工具,但仍允许管理员说明哪一个是默认版本。如,

$ ls -l /usr/bin/vi
lrwxrwxrwx 1 root root 20 2011-01-11 01:07 /usr/bin/vi -> /etc/alternatives/vi
$ ls -l /etc/alternatives/vi
lrwxrwxrwx 1 root root 18 2011-01-11 01:07 /etc/alternatives/vi -> /usr/bin/vim.basic
$ ls -l /usr/bin/vim.basic
-rwxr-xr-x 1 root root 1866904 2010-09-28 04:06 /usr/bin/vim.basic

这有点迂回,但是配置是在每个系统/etc/目录中维护的,而通常的/usr/bin/vi路径将执行非常类似于vi的内容,当时有很多选择(nvi,elvis,vim,AT& T vi等)

答案 2 :(得分:1)

符号链接是主机操作系统上使用的东西,而不是PHP本身 它创建文件的快捷方式。通过在public_html文件夹中创建一个符号链接到可以包含它而不使用完整路径的长路径,可以有用地请求具有长路径的常用文件。

http://en.wikipedia.org/wiki/Symbolic_link

//编辑:
这比仅仅复制文件更好,因为你实际上使用原始文件,所以如果原始文件更改,符号链接将始终指向新文件,所以它不是副本!

答案 3 :(得分:1)

php函数实际上只委托操作系统的功能,因此它只有symbolic symlink一般有用:

  

符号链接透明运行   对于大多数操作:程序   读取或写入由a命名的文件   符号链接将表现得好像   直接在目标文件上运行。

     

(来自维基百科)

我已经看到它被 Typo3

使用了

每个Typo3站点都有链接到主安装的文件夹 - 因此几个站点可以使用相同的代码库,可以通过提取新版本,然后更改符号链接(减少站点脱机的时间)来更新Typo3

答案 4 :(得分:1)