我有两个文件夹,其中一个是我的 Web 服务器根目录。我想将其链接到我的项目文件夹,这样我就可以通过 Git 保持最新状态。
如果我尝试这样做:
ln -s /home/user/project /var/www/html
系统会创建一个名为项目在 html 文件夹中,并链接该文件夹。有没有办法链接它,以便目录“html”指向项目? 它们必须是同一个名字吗?
笔记:我还需要链接几个隐藏文件。我可以使用 来做到这一点ln
吗?
答案1
从man ln
:
默认情况下,每个目的地(新链接的名称)不应已存在。
由于您已经有一个名为的目录,因此将在其中创建具有目标名称即的html
链接。/var/www/html
project
如果您想要一个/var/www/html
指向的符号链接/home/user/project
,那么您不应该html
事先拥有该目录。因此,您应该只拥有/var/www
,然后运行以下命令将创建所需的符号链接(除非您确定,否则不要这样做):
ln -s /home/user/project /var/www/html
笔记:如果您使用尾随斜杠(如ln -s /home/user/project /var/www/html/
),您将收到错误:ln: target '/var/www/html' is not a directory: No such file or directory
。
以下是一个例子:
$ 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
是的,您可以创建隐藏文件的符号链接。
答案2
确保下没有创建 html 目录/var/www/
。
命令如下:ln -s -T /home/user/project /var/www/html