Kezdjük azzal, hogyan tudunk szimbolikus linket létrehozni. A különböző asztali környezetek eltérő módokon kínálhatnak erre lehetőséget, ami mindenhol egyformán működik az ebben az esetben is a parancssor.
A symlinket létrehozó parancs az ln -s
, így indul, amit beírunk a parancssorba, na de mi jön utána?
Az analógia:
ln -s meglévő-adat ahová-a-linket-el-szeretnénk-helyezni-és-a-neve
(Aki nem járatos a parancssorban, annak felhívnám a figyelmét arra, hogy a parancs egyes részeit a szóköz választja el egymástól.)
Nézzünk egy kicsit körül!
Nyissunk most egy terminált (Ctrl+Alt+T).
Hol állunk most a terminállal?
Erre a pwd
parancs ad választ.
/home/teszt
Az ls
paranccsal kiíratom, milyen állományok vannak abban a könyvtárban, ahol jelenleg állok a terminállal:
Asztal Dokumentumok Képek Letöltések Nyilvános Sablonok snap Videók Zenék
Akkor most készítsünk egy szimbolikus linket az Asztalra, ami a Letöltések könyvtárra mutat.
ln -s
az eleje ezt tudjuk.
Meglévő-adat
Ez jelen esetben a Letöltések könyvtár. Az én felhasználóm neve most teszt, így a Letöltések könyvtár
a /home/teszt könyvtárban van, vagyis a meglévő-adat teljes elérési útja /home/teszt/Letöltések
Link-helye-és-neve
Az Asztal könyvtár teljes elérési útja nálam most /home/teszt/Asztal, eddig rendben, a link neve pedig legyen Letöltések, hisz arra a könyvtárra mutat, vagyis /home/teszt/Asztal/Letöltések
Akkor most rakjuk össze a parancsunkat:
ln -s /home/teszt/Letöltések /home/teszt/Asztal/Letöltések
Ha neked is magyar nyelvű Ubuntud van, próbáld nyugodtan ki, (bizonyára a te felhasználóneved nem teszt, így a te parancsodban két helyen is más fog ehelyett szerepelni).
Meg is jelent az Asztalon egy Letöltések nevű szimbolikus link, amire rákattintva megnyílik a Letöltések könyvtárunk tartalma.

Próbának, gyakorlásnak jó volt, akár törölhetjük is ezt a szimbolikus linket.
Kipróbálhatjuk ezután még azt is, hogy használhattuk volna a parancsban a /home/teszt
helyett a ~
karaktert is, ez is:
ln -s ~/Letöltések ~/Asztal/Letöltések
ugyanezt az eredményt hozta volna, aztán megint törölhetjük a tanulás céljából létrehozott szimbolikus linkünket.
Tulajdonképp akár ez a blog itt is véget érhetne, azonban mehetünk még tovább, hiszen talán érdemes bemutatni a szimbolikus link gyakorlatban történő használatát konkrét, az életből hozott példán keresztül is.
Egy kis kitérő:
Az előző blogomban is vázoltam már azt a helyzetet, amikor kevés a hely egy partíciónkon (ebben az esetben éppen a rendszerpartíción) és ezért egy másik partícióra szeretnénk áthelyezni az adatainkat, hogy így szabadítsunk fel helyet. Ilyenkor is nagy szolgálatot tehet nekünk a symlink.
Lehet ez már meglévő másik partíció, vagy tehetsz a gépbe egy új nyers lemezt, azon teszem azt a GParteddel létrehozol egy új partíciós táblát és legalább egy ext4 partíciót az áthelyezni kívánt adataidnak.
Automatikus csatolás
_Szükségünk van továbbá arra, hogy a célpartíciónk automatikusan csatolódjék a rendszerhez (az nem lenne jó, ha a szimbolikus link egy olyan tartalomra mutatna, ami egy olyan partíción van, ami nincs a rendszerhez csatolva.)
Ha ez még nincs beállítva, akkor először is kell egy könyvtár, ahová majd csatoljuk, ehhez hozzunk létre egyet könyvtárat:
mkdir /home/$USER/adat
Az automatikus csatolást beállíthatjuk például a Lemezek alkalmazásban. Az adott lemezt majd partíciót és Csatolási beállítások szerkesztése menüpontot választva,

a „Felhasználói munkamenet alapértékei”-t kikapcsolva, az előbbiekben létrehozott létező csatolási pontot megadva és emlékeim szerint a csatolási paramétereket „defaults”-ra átírva kényelmesen megtehetjük.

Persze szerkeszthetjük akár kézzel is az /etc/fstab fájlt, a lényeg, hogy a partíció a rendszer indításával együtt csatolva legyen.
Újraindítjuk a rendszert.
Ha mindent jól csináltunk, akkor most már csatolva van a partíció az arra kijelölt helyre (/home/teszt/adat), de ha ez egy frissen formázott partíció a root tulajdonában van, nem tudunk írni rá.
A partíció átadása a felhasználónknak:
A sudo chown -R $USER:$USER /home/teszt/adat
paranccsal az éppen bejelentkezett felhasználónk tulajdonába tudjuk adni, bármi is legyen a felhasználóneve.
Még egy ki-bejelentkezés vagy akár egy újraindítás és máris írhatunk a partícióra.
Könyvtárszerkezet kialakítása:
Gondolkodjunk előre, jó ha nem csak úgy odamásoljuk az állományokat az új helyükre, hanem esetleg előkészítünk nekik megfelelő könyvtárszerkezetet.
Én most a /home/teszt alól fogok dolgokat átmásolni, ezért az új partíción készítek egy .second-home nevű könyvtárat. Mivel ponttal kezdődik a neve, ez egy rejtett könyvtár lesz, így talán eggyel jobban védett attól, hogy valaki véletlen belepiszkáljon. Alapból nem kell látszódjon a fájlkezelőben, elég ha én tudom, hogy ott van.
mkdir /home/teszt/adat/.second-home
(Természetesen a fájlkezelőben Crtl+H-t nyomva meg tudom jeleníteni a rejtett állományokat is, úgyhogy akár a fájlkezelővel is dolgozhatok majd ebben a könyvtárban).
Aztán ebbe a könyvtárba készítek egy teszt nevű könyvtárat a felhasználómnak.
mkdir /home/teszt/adat/.second-home/teszt
Ez most így neked lehet, hogy kicsit felesleges macerának tűnik, ha csak egy felhasználója van a rendszerednek, de ha már van egy teszt felhasználói fiók és egy másik fiók az ő becses nejének is, akkor bizony nagyon jó, ha megvan ez az eredetit követő szerkezet...
Természetesen ettől a példától saját elképzelésed szerint nyugodtan eltérhetsz.
Nos, akkor most már van egy (másik) automatikusan csatolódó partíciónk, melyre van is írási jogunk, ide szeretnénk átmozgatni, utána symlinkelni bizonyos állományainkat.
Az elmélet:
Áthelyezünk valahová valamit, aztán készítünk reá mutató szimbolikus linket, így olyan lesz a rendszer számára, mintha ugyanott maradt volna, de valójában már máshol foglalja a helyet.
A dologgal csak annyi a gondom, hogy ha az áthelyezés valamiért nem sikerül, a folyamat során valami hiba lép fel, akkor akár bukhatjuk is adatainkat, tehát egy biztonságosabb módszert javaslok:
Állományok másolása:
Mivel a Dokumentumok könyvtárban csak egyszerű adatfájlok vannak (a felhasználóm tulajdonában van mind, semmi sem másé vagy éppen a root tulajdona), nyugodtan használhatom a cp
parancsot, ezzel másolom a tartalmát.
cp -r /home/teszt/Dokumentumok /home/teszt/adat/.second-home/teszt
cp
a másolás, az -r
azért kell mert rekurzívan másolunk, hiszen ez nem egy fájl, hanem egy könyvtár. Utána szóköz, majd a forrás elérési útvonala, aztán megint szóköz és a cél elérési útvonala.
(Ha mondjuk a /home/teszt/systemback könyvtáramat szeretném elköltöztetni, amivel rendszergazdai jogú rendszermentések vannak, akkor a
sudo rsync -a /home/teszt/systemback /home/teszt/adat/.second-home/teszt
paranccsal másolnám.)
Az eredeti állomány átnevezése:
Mivel most van Dokumentumok könyvtár a /home/teszt alatt, ide nem tudok ilyen nevű symlinket létrehozni, azonban az adatbiztonság miatt egyelőre ezt a könyvtárat nem törlöm csak átnevezem.
mv /home/teszt/Dokumentumok /home/teszt/Dokumentumok
Most már létre lehet hozni a symlinket:
ln -s /home/teszt/adat/.second-home/teszt/Dokumentumok /home/teszt/Dokumentumok
Kész a linkünk, a Dokumentumokra rákattintva megnyílik az eredetivel azonos tartalmú könyvtár.
Ha mindent leellenőriztünk és minden rendben, akkor akár lehet is törölni a Dokumentumok-old könyvtárat:
rm -r /home/teszt/Dokumentumok-old
Figyelem! Ez a művelet nem visszavonható!
Miért jó ez?
Ha ezt most megcsinálod, akkor igazából a hasznát a következő rendszered telepítésekor arathatod majd le. Ott is beállítod, hogy ez a partíció automatikusan legyen csatolva.
A példánál maradva, törlöd a friss telepítés felhasználójának akkor még üres Dokumentumok könyvtárát és kiadod az
ln -s /particio-csatolasi-pontja/.second-home/teszt/Dokumentumok /home/$USER/Dokumentumok
parancsot, ahol természetesen a particio-csatolasi-pontja
helyére a konkrét értéket kell behelyettesíteni, de amúgy mindegy mi az új rendszer felhasználójának felhasználóneve, folytatod ott a munkát a dokumentumainkkal, ahol az előző rendszeren abbahagytad, mindened megvan. Szerintem ez nagyon hasznos tud lenni a Képek, Letöltések, Zenék mappák esetében is, de amúgy az én éles rendszeremen ugyanígy ki van téve az adatpartícióra a VirtualBox VMs a és MEGASync könyvtár is. Az új rendszer lehet innentől kezdve egy viszonylag kisebb partíción (ha külön lemezre szeretnéd a feltelepíteni majd az új rendszert, akkor elég neki egy kisebb méretű lemezt venni) és nem kell külön partícióra tenni a home-ját, hiszen az adatok jó része úgy is ki van symlinkelve az adatpartícióra. Az új rendszer /home/user alatt lévő konfigurációs fájljai tiszták, nem keverednek az előző rendszerével úgy, mintha az előző rendszer home partícióját csatoltad volna és azon használt felhasználónévvel azonos felhasználónevet adtál volna meg.
Sokszor előfordult, hogy készítettem külön adatpartíciót a rendszerhez, de a felhasználók azt nem használták, hanem oda mentettek, ahová a rendszer ezt automatikusan kínálta nekik. Erre a helyzetre is megoldást jelentett, ha így készítettem el a rendszert, a felhasználó Dokumentumok, Képek, Letöltések, Zenék könyvtárait eleve egy előkészített adatpartícióra symlinkeltem ki, így automatikusan az adatpartícióra mentették az adataikat, anélkül, hogy ezzel foglalkozniuk kellett volna.