Jeg har en symbolsk lenke til en viktig katalog. Jeg vil kvitte meg med denne symbolkoblingen, men beholde katalogen bak den.
Jeg prøvde rm
og får tilbake rm: cannot remove 'foo'. Jeg prøvde
rmdirog fikk tilbake
rmdir: failed to remove 'foo': Directory not empty Deretter gikk jeg gjennom
rm -f,
rm -rfog
sudo rm -rf`.
Så gikk jeg for å finne sikkerhetskopiene mine.
Er det en måte å bli kvitt symbolkoblingen uten å kaste babyen med badevannet?
# this works
rm foo
# versus
rm foo/
I utgangspunktet må du be den om å slette en fil, ikke slette en katalog. Jeg tror forskjellen mellom rm
og rmdir
eksisterer på grunn av forskjeller i måten C-biblioteket behandler hver.
I alle fall bør den første fungere, mens den andre bør klage på at foo er en katalog.
Hvis det ikke fungerer som ovenfor, må du sjekke tillatelsene dine. Du trenger skrivetillatelse til den inneholdende katalogen for å fjerne filer.
bruk kommandoen "unlink" og sørg for ikke å ha / på slutten.
$ unlink mySymLink
unlink() sletter et navn fra filsystemet. **Hvis dette navnet var den siste lenken til en fil og ingen prosesser har filen åpen, slettes filen og plassen den brukte, gjøres tilgjengelig for gjenbruk. Hvis navnet var den siste lenken til en fil, men noen prosesser fortsatt har filen åpen, vil filen fortsette å eksistere til den siste filbeskrivelsen som refererer til den, lukkes.
Jeg tror dette kan være problematisk hvis jeg leser det riktig.
Hvis navnet refererte til en symbolsk lenke, fjernes lenken..
Hvis navnet refererte til en socket, fifo eller enhet, fjernes navnet for den, men prosesser som har objektet åpent, kan fortsette å bruke det.