Hur ändrar jag en symbolisk länk i Linux?

Sedan finns det tre sätt att ändra symbollänken:

  1. Använd ln med -f kraft och även för kataloger -n (inod kan återanvändas): ln -sfn /some/new/path länknamn.
  2. Ta bort symbollänken och skapa en ny (även för kataloger): rm länknamn; ln -s /some/new/path länknamn.

Nej. Symlink-systemanropet returnerar EEXIST om newpath redan finns. Du kan bara länka från en ny nod i filsystemet.

Vad händer med symlink om vi byter namn på en fil? När du flyttar en fil som symlink pekar till, symlink är bruten aka dinglande symbollänk. Du måste ta bort den och skapa en ny om du vill peka på det nya filnamnet.

Eftersom symboliska länkar inte har lägen chmod har ingen effekt på de symboliska länkarna. Om filen anger en katalog, ändrar chmod läget för varje fil i hela underträdet som är anslutet vid den punkten. Följ inte symboliska länkar. Eftersom symboliska länkar inte har lägen har chmod ingen effekt på de symboliska länkarna.

För att ta bort en symbolisk länk, använd antingen kommandot rm eller unlink följt av namnet på symbollänken som ett argument. När du tar bort en symbolisk länk som pekar till en katalog ska du inte lägga till ett snedstreck till symbollänkens namn.

Anledningen till hårdlänkande kataloger är inte tillåtet är lite tekniskt. I huvudsak bryter de filsystemets struktur. Du bör i allmänhet inte använda hårda länkar ändå. Symboliska länkar tillåter det mesta av samma funktionalitet utan att orsaka problem (t.ex. ln -s mållänk ).

För att skapa en symbolisk länk, använd alternativet -s ( –symbolic ).. Om både FILE och LINK är givna, kommer ln att skapa en länk från filen som anges som första argument ( FILE ) till filen som anges som andra argument ( LINK ).

Om en symbolisk länk raderas, dess mål förblir opåverkat. Om en symbolisk länk pekar på ett mål, och någon gång senare det målet flyttas, byter namn eller raderas, uppdateras eller raderas den symboliska länken inte automatiskt, utan fortsätter att existera och pekar fortfarande på det gamla målet, nu en icke-existerande plats eller fil.

Så här visar du de symboliska länkarna i en katalog:

  1. Öppna en terminal och flytta till den katalogen.
  2. Skriv kommandot: ls -la. Detta ska lång lista alla filer i katalogen även om de är dolda.
  3. Filerna som börjar med l är dina symboliska länkfiler.
Gilla det här inlägget? Dela gärna med dina vänner:
OS idag