Come rimuovere il collegamento simbolico


139

Stavo cercando di creare questo link simbolico:

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin

ma ho accidentalmente digitato:

sudo ln -s /usr/share/php,yad,in /var/www/phpmyadmin

Quindi ora voglio correggerlo ma dice che esiste già un collegamento simbolico.

Risposte:


165

È possibile utilizzare rmper eliminare il collegamento simbolico.

Esempio:

-rw-rw-r-- 1 2014-01-02 09:21 tmo
lrwxrwxrwx 1 2014-01-02 09:21 tmo2 -> tmo

Poi ...

 rm tmo2

rimuoverà il collegamento simbolico.


1
permesso negato. Questo è quello che ho scritto per primo: sudo ln -s / usr / share / php, yad, in / var / www / phpmyadmin
James

6
permesso negato: sai che hai bisogno di sudo se vuoi usarlo in una situazione in cui non sei il proprietario del file? Questo vale anche per "rm".
Rinzwind

2
l'ho fatto rm / usr / bin / python e ho rimosso il mio python da ubuntu: S

2
@RaheelKhan no you have -not- Hai rimosso un SYMLINK. Python si affida a questo link simbolico. Se si ricrea quel link simbolico, Python tornerà.
Rinzwind,

1
Provo questo comando ma sembra che il mio file sia stato rimosso, non voglio rimuovere il mio file
saeed masoomi,

24

Puoi anche provare a unlinkcomandare.
unlinkè un comando alias di rm. quindi rm <symlink>funzionerà comeunlink <symlink>

Ecco il link di riferimento .


9
unlinknon ha nulla a che fare con i link simbolici in particolare. Vedi serverfault.com/a/38817/64085
Matteo Leggi il

@kushvarma ma funziona. ci hai provato?
Hakunami,

1
la risposta potrebbe essere corretta, ma confonderà i neofiti
con il

" unlinkè un comando alias di rm" [citazione necessaria]
mwfearnley

12

Supponiamo che stavi cercando di fare:

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin/

ma accidentalmente ha fatto:

sudo ln -s /usr/share/somethingelse /var/www/phpmyadmin/

Per correggerlo è sufficiente accedere alla cartella in cui si trova il collegamento e scollegare

cd /var/www/phpmyadmin/  
~:# unlink somethingelse

8

Si utilizzerà quanto segue per rimuovere il collegamento simbolico

sudo rm path/to/the/link

Spiegazione

  • rmè il comando terminale per rimuovere un file. Vedere rm --helpper ulteriori opzioni che può richiedere.
  • sudoviene utilizzato perché è stato creato il collegamento simbolico con sudo. Pertanto, il file appartiene a root e l'utente normale non sarà in grado di modificarlo / rimuoverlo poiché ha meno "potenza" di root.
  • path/to/the/linksarà /usr/share/php,yad,inbasato sul tuo commento.

Extra

Vedi anche questo post e il mio commento alla prima risposta per accedere a phpmyadmin quando viene visualizzato un errore non trovato dopo l'installazione.


Il tuo commento non è generico. Si prega di utilizzare sempre il comando generico per mostrare come rimuovere il collegamento simbolico
kushvarma

generico significa che dovrebbe essere valido per tutto, come se il tuo comando fosse specifico per / usr / share / php, yad, in, ma dovrebbe piacere a rm <symlink>
kushvarma

@kushvarma, grazie. Ho reso la risposta più generica - era originariamente specifica perché l'OP sembrava avere un problema nella rimozione del file
chesedo

1

Mi dispiace per necro post, ma ho trovato questa domanda quando stavo cercando una risposta a questo problema.

Un piccolo avvertimento che ho scoperto è che stavo cercando di eseguire rme unlinksu un collegamento simbolico e stavo ottenendo un errore che era una directory.

$ rm folder_name/
rm: cannot remove ‘folder_name/’: Is a directory
$ unlink folder_name/
unlink: cannot unlink ‘folder_name/’: Not a directory

Per rimuovere il collegamento simbolico, ho usato, unlink folder_namema non è riuscito se c'è stato un trailing /per esempio unlink folder_name/perché pensa che sia una directory, non il file che si desidera rimuovere.


0

Mi sono imbattuto qui perché ho dovuto rimuovere ae dpkg-divertil nuovo pacchetto ha vinto; t install fino a quando non è stato rimosso.

Quindi se hai fatto qualcosa del genere:

sudo dpkg-divert --add --rename --divert /usr/bin/gcc.real /usr/bin/gcc

Devi rimuoverlo con qualcosa del genere:

sudo dpkg-divert --remove /usr/bin/gcc.real
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.