创建一个从一个文件夹到另一个具有不同名称的文件夹的符号链接?

创建一个从一个文件夹到另一个具有不同名称的文件夹的符号链接?

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

如果我尝试这样做:

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

系统会创建一个名为项目在 html 文件夹中,并链接该文件夹。有没有办法链接它,以便目录“html”指向项目? 它们必须是同一个名字吗?

笔记:我还需要链接几个隐藏文件。我可以使用 来做到这一点ln吗?

答案1

man ln

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

由于您已经有一个名为的目录,因此将在其中创建具有目标名称即的html链接。/var/www/htmlproject

如果您想要一个/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

相关内容