Создание символической ссылки из одной папки в другую с другими именами?

Создание символической ссылки из одной папки в другую с другими именами?

У меня есть две папки, одна из которых — корень моего веб-сервера. Я хочу связать ее с папкой проекта, чтобы поддерживать все в актуальном состоянии с помощью 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

Связанный контент