Creare un collegamento simbolico da una cartella a un'altra con nomi diversi?


81

Ho due cartelle, una delle quali è la mia radice del server web. Voglio collegarlo alla mia cartella del progetto in modo da poter mantenere le cose aggiornate con Git.

Se provo a fare questo:

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

Il sistema crea una cartella chiamata project all'interno della cartella html e la collega. C'è un modo per collegarlo in modo che la directory 'html' punti ai contenuti del progetto ? Devono essere lo stesso nome?

Nota : devo anche collegare diversi file nascosti. Posso farlo usando ln?

Risposte:


109

Da man ln:

Per impostazione predefinita, ogni destinazione (nome del nuovo collegamento) non dovrebbe già esistere.

Poiché hai già una directory denominata html, il link verrà creato all'interno /var/www/htmlcon il nome della destinazione, ad es project.

Se si desidera avere un link simbolico /var/www/htmlpuntato /home/user/project, non si dovrebbe avere la directory htmlpresente in anticipo. Quindi, dovresti solo avere /var/wwwe quindi eseguire quanto segue creerà il collegamento simbolico desiderato (non farlo se non sei sicuro):

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

Ecco un esempio:

$ 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

E sì, è possibile creare collegamenti simbolici di file nascosti.


13
Ci ho provato ma il link simbolico risultante era un file e non una directory
Alex,

1
@Alex un softlink appare come un file ma il risultato è che si comporta come la cartella a cui puntava.
Chanoch,

5
Si noti inoltre che la directory di origine non deve essere il percorso relativo deve essere assoluto, quindi ln -s ./ /var/www/htmlnon funzionerà
Diego Andrés Díaz Espinoza,

0

Assicurarsi che la directory html non sia stata creata in /var/www/.

Il comando quindi è: ln -s -T /home/user/project /var/www/html

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.