Erstellen eines Symlinks von einem Ordner in einen anderen mit unterschiedlichen Namen?


81

Ich habe zwei Ordner, von denen einer mein Webserver-Root ist. Ich möchte es mit meinem Projektordner verknüpfen, damit ich mit Git auf dem neuesten Stand bleiben kann.

Wenn ich das versuche:

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

Das System erstellt einen Ordner namens project im HTML-Ordner und verknüpft diesen. Gibt es eine Möglichkeit, es so zu verknüpfen, dass das Verzeichnis 'html' auf den Inhalt des Projekts verweist ? Müssen sie den gleichen Namen haben?

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

Antworten:


109

Von man ln:

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

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

Wenn Sie einen Symlink haben möchten, auf den verwiesen wird /var/www/html, /home/user/projectsollte das Verzeichnis htmlvorher nicht vorhanden sein. Wenn Sie also nur /var/wwwFolgendes ausführen, wird der gewünschte Symlink erstellt (tun Sie dies nur, wenn Sie sich sicher sind):

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

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 Symlinks von versteckten Dateien erstellen.


13
Ich habe es versucht, aber der resultierende Symlink war eine Datei und kein Verzeichnis
Alex

1
@Alex ein Softlink erscheint wie eine Datei, aber das Ergebnis ist, dass es sich wie der Ordner verhält, auf den es zeigte.
Chanoch

5
Beachten Sie auch, dass das Quellverzeichnis kein relativer Pfad sein darf, der absolut sein muss, damit er ln -s ./ /var/www/htmlnicht funktioniert
Diego Andrés Díaz Espinoza

0

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

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.