Nawiązałem symboliczny link za pomocą następującego polecenia:
ln -s ../test5
Chcę go teraz usunąć, ale mój rm nie działa:
$ rm -Rf test5/
rm: cannot remove `test5/': Not a directory
$ rm test5/
rm: cannot remove directory `test5/': Is a directory
$ rmdir test5/
rmdir: test5/: Not a directory
$rm -r test5/
rm: cannot remove `test5/': Not a directory
$ls -l
0 lrwxrwxrwx 1 peter peter 8 Jul 20 15:30 test5 -> ../test5/
Jak mogę usunąć mój symboliczny link? (Ubuntu 8.10, bash)
linux
bash
symbolic-link
Peter Smit
źródło
źródło
rm -r link/
usuwa treść celuOdpowiedzi:
Usuń końcowy ukośnik:
Z pytaniem:
Bez pytania:
źródło
permission denied
.test5/
jest niepoprawne.Spróbuj
rm test5
(bez slashu treningowego).
Ukośnik wskazuje, że „test5” jest direactory natomiast to faktycznie plik linkami do katalogu.
źródło
Możesz uruchomić usuwanie końcowego ukośnika:
Spowoduje to usunięcie pliku (tj. Dowiązanie symboliczne).
Alternatywnie możesz użyć rozłączenia:
Ponownie musisz pominąć końcowy ukośnik, ponieważ próbujesz rozłączyć dowiązanie symboliczne, a nie katalog.
źródło
Czasami, jeśli użyjesz autouzupełniania do nazwania łącza, które chcesz usunąć, możesz nie zobaczyć końcowego ukośnika, ale jest on „w połowie”, a ten niewidoczny ukośnik nadal powoduje błąd usuwania podczas próby usunięcia tego łącza.
W takim przypadku wpisz znak po znaku link do usunięcia jako „test5” jak np.
rm test5
.źródło
Problemem w PO jest to, że występuje
/
, więctest5/
zgłasza błąd, aletest5
działa.Wolę używać
unlink
zamiast tego,rm
że moja intencja jest jaśniejsza i nie ma szans na pomyłkowe usunięcie prawdziwego katalogu zamiast łącza. Upewnij się, że/
po nazwie katalogu nie ma znaku końca, np .:źródło
Czuję się głupio pytając, ale czy próbowałeś
rm -r
? Ponieważ jest to symboliczny link, nie powinien usuwać celu.Edycja: Właśnie wypróbowałem, to prawda
Edycja 2: rmdir mówi w pierwszym wierszu strony podręcznika, że usuwa puste katalogi. Pomyślałbym, ponieważ ponieważ jest to łącze, sprawdził bit katalogu we właściwościach pliku, ale ponieważ rmdir nie podejrzewa, że w takim przypadku wyrzuca błędy. Wystarczy użyć rm -r
źródło