创建一个从一个文件夹到另一个文件夹的符号链接,并使用不同的名称?


81

我有两个文件夹,其中一个是我的Web服务器根目录。我想将其链接到我的项目文件夹,以便可以使用Git保持最新状态。

如果我尝试这样做:

ln -s /home/user/project  /var/www/html

系统在html文件夹中创建一个名为project的文件夹,并将其链接。有什么方法可以链接它,以便目录“ html”指向项目的内容?他们必须是同一个名字吗?

注意:我还需要链接几个隐藏文件。我可以使用ln吗?

Answers:


109

来自man ln

默认情况下,每个目的地(新链接的名称)应该不存在。

由于您已经有一个名为的目录html,将在内部创建/var/www/html包含目标名称即ID的链接project

如果您要/var/www/html指向一个符号链接,/home/user/project则您不应该html事先存在该目录。因此,您只应拥有/var/www,然后运行以下命令即可创建所需的符号链接(除非您确定,否则不要这样做):

ln -s /home/user/project /var/www/html

这是一个例子:

$ pwd
/home/user/test/askubuntu

$ ls -l
total 4
drwxrwxr-x 2 user user 4096 Mar 25 00:16 foo

$ ln -s /home/user/test/bar /home/user/test/askubuntu/foo

$ ls -l
total 4
drwxrwxr-x 2 user user 4096 Mar 25 00:17 foo

$ cd foo/
$ ls -l
total 0
lrwxrwxrwx 1 user user 25 Mar 25 00:17 bar -> /home/user/test/bar

$ cd ..
$ rm -r foo/

$ ls -l
total 0

$ ln -s /home/user/test/bar /home/user/test/askubuntu/foo

$ ls -l
total 0
lrwxrwxrwx 1 user user 25 Mar 25 00:18 foo -> /home/user/test/bar

是的,您可以创建隐藏文件的符号链接。


13
我试过了,但是结果符号链接是文件而不是目录
Alex

1
@Alex软链接看起来像文件,但结果是它的行为类似于指向的文件夹。
Chanoch

5
还要注意,源目录不能是相对路径,必须是绝对路径,这样ln -s ./ /var/www/html才行不通
DiegoAndrésDíazEspinoza

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.