Створення символьного посилання з однієї папки в іншу з різними іменами?


81

У мене є дві папки, в одній з яких - корінь веб-сервера. Я хочу зв’язати його зі своєю папкою проектів, щоб я міг постійно оновлювати речі з Git.

Якщо я спробую це зробити:

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

Система створює папку під назвою проект у папці html та посилається на неї. Чи є спосіб зв’язати це так, щоб каталог 'html' вказував на вміст проекту ? Чи повинні вони бути однойменними?

Примітка : мені також потрібно зв’язати кілька прихованих файлів. Чи можу я це зробити за допомогою ln?

Відповіді:


109

Від man ln:

За замовчуванням кожне призначення (назва нового посилання) вже не повинно існувати.

Оскільки у вас вже є каталог з іменем html, посилання буде створено всередині, що /var/www/htmlмає ім'я цілі, тобто 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
Я спробував це, але отримане символьне посилання було файлом, а не каталогом
Алекс,

1
@Alex м'яке посилання виглядає як файл, але результат полягає в тому, що він поводиться як папка, на яку він вказував.
Чаноч

5
Також зауважте, що каталог джерел не повинен бути відносним, шлях повинен бути абсолютним, щоб ln -s ./ /var/www/htmlне працювати
Дієго Андрес Діас Еспіноза

0

Переконайтеся, що каталог html не створено під /var/www/.

Команда тоді: ln -s -T /home/user/project /var/www/html

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.