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