web-dev-qa-db-fra.com

Créer un lien symbolique d'un dossier à un autre avec des noms différents?

J'ai deux dossiers, dont l'un est la racine de mon serveur Web. Je souhaite le lier à mon dossier de projet afin de pouvoir maintenir les informations à jour avec Git.

Si j'essaie de faire ceci:

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

Le système crée un dossier appelé projet dans le dossier html, et lie ce lien. Est-il possible de le lier de sorte que le répertoire 'html' pointe vers le contenu du projet ? Doivent-ils être le même nom?

Note: J'ai également besoin de lier plusieurs fichiers cachés. Puis-je faire cela en utilisant ln?

74
user991710

De man ln:

Par défaut, chaque destination (nom du nouveau lien) ne devrait pas déjà exister.

Comme vous avez déjà un répertoire nommé htmlname__, le lien sera créé dans /var/www/html et porte le nom de la cible, c'est-à-dire projectname__.

Si vous souhaitez qu'un lien symbolique /var/www/html pointant vers /home/user/project, le répertoire htmlne doit pas être présent auparavant. Donc, vous ne devriez avoir que /var/www et ensuite, exécutez ce qui suit pour créer le lien symbolique souhaité (ne le faites pas sauf si vous êtes sûr):

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

Voici un exemple:

$ 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

Et oui, vous pouvez créer des liens symboliques de fichiers cachés.

101
heemayl

Assurez-vous que le répertoire HTML n'est pas créé sous /var/www/.

La commande est alors: ln -s -T /home/user/project /var/www/html

0
Jivak Dhadse