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.