Einen symbolischen Link von einem Ordner zu einem anderen mit unterschiedlichen Namen erstellen?

Einen symbolischen Link von einem Ordner zu einem anderen mit unterschiedlichen Namen erstellen?

Ich habe zwei Ordner, einer davon ist mein Webserver-Stammverzeichnis. Ich möchte ihn mit meinem Projektordner verknüpfen, damit ich alles mit Git auf dem neuesten Stand halten kann.

Wenn ich versuche, dies zu tun:

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

Das System erstellt einen Ordner namensProjektim html-Ordner und verlinkt diesen. Gibt es eine Möglichkeit, es so zu verknüpfen, dass das Verzeichnis 'html' auf den Inhalt vonProjekt? Müssen sie den gleichen Namen haben?

Notiz: Ich muss auch mehrere versteckte Dateien verknüpfen. Kann ich das mit tun ln?

Antwort1

Aus man ln:

Standardmäßig sollte jedes Ziel (Name des neuen Links) noch nicht vorhanden sein.

Da Sie bereits ein Verzeichnis mit dem Namen haben html, wird der Link darin /var/www/htmlmit dem Namen des Ziels erstellt, d. h. project.

Wenn Sie einen symbolischen Link haben möchten, /var/www/htmlder auf dieses Verzeichnis verweist /home/user/project, darf das Verzeichnis nicht htmlbereits vorhanden sein. Sie müssen also nur /var/wwwFolgendes ausführen, um den gewünschten symbolischen Link zu erstellen (tun Sie dies nicht, wenn Sie nicht sicher sind):

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

Notiz: Wenn Sie einen abschließenden Schrägstrich verwenden (wie in ln -s /home/user/project /var/www/html/), erhalten Sie einen Fehler: ln: target '/var/www/html' is not a directory: No such file or directory.

Hier ist ein Beispiel:

$ 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

Und ja, Sie können symbolische Links zu versteckten Dateien erstellen.

Antwort2

Stellen Sie sicher, dass darunter kein HTML-Verzeichnis erstellt wird /var/www/.

Der Befehl lautet dann:ln -s -T /home/user/project /var/www/html

verwandte Informationen