23 – දෘඩ සහ මෘදු සබැඳි (hard & soft links) පිලිබඳ ගැඹුරින්

අද අප සාකච්චා කිරීමට යන්නේ තරමක් සංකීර්ණ මාතෘකාවක් පිළිබඳවයි. කෙසේ නමුත් ඔබ නොකඩවා Linux – සිංහල ලිපි සමූහය පරිශීලනය කල අයෙක් නම් අද අප සාකච්චා කරන කරුණු තේරුම් ගැනීමට අපහසු වන්නේ නැහැ. පසුගිය ලිපියෙන් අප ගොණු සහ නාමාවලි කළමනාකරණය (File & Directory Management) යටතේ සබැඳි නිර්මාණය (links) පිලිබඳ මූලික කරුණු ගෙන එනු ලැබුවා. එහිදී ln command මගින් මෘදු සබැඳි (soft links) පමණක් නිර්මාණය කලා මතක ඇති. කෙසේ නමුත් ln command මගින් දෘඩ සබැඳි (hard links) ලෙස හැඳින්වෙන තවත් links වර්ගයක් ද නිර්මාණය කල හැකියි. මෙම මෘදු සහ දෘඩ සබැඳි (soft & hard links) අතර විශාල වශයෙන් වෙනස්කම් පවතින අතර Linux පරිශීලකයෙකු වශයෙන් ඒවා දැන සිටීම ඉතා වැදගත් වේ.

Hard Links (දෘඩ සබැඳි)

Linux හි ආරම්භක මූල බීජය වන Unix මෙහෙයුම් පද්ධතියෙහි හි links නිර්මාණය වන්නේ hard links ලෙසිනි. මෙය තරමක් පැරණි ක්‍රමයක් වන අතර ගොණු පද්ධතියේ (file system) ගොණු නිර්මාණයේදී filename ලබාදීමට අනිවාර්යයෙන් එක් hard link එකක් නිර්මාණය වේ. අප විසින් file එකකට අලුතින් hard link එකක් නිර්මාණයේදී සිදු වන්නේ file එක අන්තර්ගත වන නාමාවලිය (directory) තුළ අමතර වශයෙන් තවත් ප්‍රවේශන සටහනක් (additional entry) ඇතුළත් කිරීමයි. Hard links වල වැදගත් අඩුලුහුඬුකම් දෙකක් හඳුනා ගැනීමට හැකියි.

  1. Hard link එකක් හරහා ගොණු පද්ධතියෙන් භාහිර ව පවතින files වලට යොමුවක් (reference) නිර්මාණය කල නොහැකිය. උදාහරණයක් ලෙස  ඔබට Linux file system හි සිට Windows file system එකේ ඇති file එකකට hard link එකක් නිර්මාණය කිරීමට හැකියාවක් නැහැ.
  2. Hard link මගින් නාමාවලියකට (directory) එකකට යොමුවක් නිර්මාණය කල නොහැක.

තවද hard link එකක් සහ සත්‍ය ගොණුව (original file) අතර කිසිදු වෙනසක් දැකීමට නොහැකියි. සාමාන්‍යයෙන් ls -l command මගින් නාමාවලි අන්තර්ගතය (directory content) පෙන්වීමේදී hard link සුවිශේෂ කර දැක්වීමක් (indicate) සිදු වන්නේ නැහැ. කිසියම් ගොණුවකට hard links එකකට වඩා වැඩි ප්‍රමාණයක් නිර්මාණය කර ඇත්නම් ඉන් එකක් මකා දැමීමෙන් පමණක් ගොණුව මැකී නොයන අතර සියලු ම hard links මකා දැමූ පසු ගොණුව මැකී ගොස් එම ඉඩ ප්‍රමාණය නැවත ලබා ගැනීමට හැකියාව ලැබේ.

Soft Links (මෘදු සබැඳි)

ඉහතින් දැක්වූ hard links වල තිබූ අඩුපාඩු නිසා වර්තමානයේදී Linux මෙහෙයුම් පද්ධතිය තුළ soft links භාවිතා කිරීම සිදුවේ. මෙහිදී විශේෂිත ක්‍රමයකට file හෝ directory එකකට යොමුවක් (reference) නිර්මාණය කිරීම සිදුවේ. Soft links යන්නට symbolic links (සංකේතාත්මක සබැඳි) යන යෙදුම ද නිතර භාවිතා කරනු දැකිය හැකියි.

Soft link එක සහ ඊට අදාළ file එක අතර සුවිශේෂ වෙනස්කම් ඇත. උදාහරණයක් ලෙස soft link එකකට දත්ත ලිවීමේදී (data writing) යොමුවෙන් දක්වා ඇති (reference) file එකටම දත්ත ලිවිම සිදුවේ. නමුත් soft link එකක් මැකීමේදී file එක මැකී නොයයි. තවද soft link එකකට පළමුව එම යොමුව මගින් දක්වා ඇති file එක මකා දැමුවහොත් soft link එක දිගටම රැඳී පවතින නමුත් එමගින් දක්වන ස්ථානය අර්ථ ශුන්‍ය වේ. මෙවැන්නක් ඛණ්ඩනය වූ සබැඳියක් (broken link) ලෙස හඳුන්වයි. ls command මගින් දැක්වීමේදී broken links වෙනත් වර්ණයකින් සුවිශේෂ කර පෙන්වයි.

දැන් අපි soft & hard links යන්න command line තුළදී නිර්මාණය කරන ආකාරය බලමු. මින් soft links නිර්මාණය පසුගිය ලිපියේ දැක්වූ නමුත් ලිපියේ පරිපුර්ණත්වය සඳහා මෙහි නැවත සඳහන් කර ඇත.

ln -s   (soft linking)
ln   (hard linking)

සටහන: කිසියම් file/directory එකකට ඇති hard link ගණන සොයා ගැනීමට ls -l command ක්‍රියාත්මක කර එහි දෙවැනි තීරුවෙහි (column) දක්වා ඇති ඉලක්කම යොදාගත හැකිය. වැඩි විස්තර සඳහා File පිලිබඳ වැඩිමනත් තොරතුරු (Additional Information) ලිපිය බලන්න.

Soft & hard links නිර්මාණය උදාහරණ මගින් පහත දක්වා ඇත.

linking-files
hard & soft links

Hard links සහ සත්‍ය file එක අතර වෙනසක් නොපෙන්වන බැවින් hard links කිහිපයක් එකම directory එකක ඇතිවිට එමගින් නිරුපණය වන files වෙන්කර හඳුනා ගැනීම අපහසුය. ls -l command මගින් දක්වන hard links සංඛ්‍යාව හෝ ගොණුවේ ප්‍රමාණය (file size) යොදාගැනීම ද එතරම් විශ්වාසදායක නොවේ. මෙහිදී Linux මෙහෙයුම් පද්ධතිය මගින් කිසියම් ගොණුවක් නිර්මාණයේදී එය නිසැකවම හඳුනා ගැනීමට ලබාදෙන විශේෂිත අංකයක් මගින් අපගේ කාර්යය පහසු කරගත හැකිය. මෙම අංකය හඳුන්වනු ලබන්නේ inode number ලෙසිනි. Hard links කිහිපයක් මගින් එකම inode number යොදාගෙන ඇත්නම් එමගින් අදහස් කෙරෙන්නේ එම සියලුම hard links මගින් එකම file එකක් නියෝජනය වන බවයි. ls -l command සමග -i option යෙදීමෙන් මෙම inode number දර්ශනය කරගත හැකිය.

inode number
inode number

ප්‍රතිචාරයක් ලබාදෙන්න

Fill in your details below or click an icon to log in:

WordPress.com Logo

ඔබ අදහස් දක්වන්නේ ඔබේ WordPress.com ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Google photo

ඔබ අදහස් දක්වන්නේ ඔබේ Google ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Twitter picture

ඔබ අදහස් දක්වන්නේ ඔබේ Twitter ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Facebook photo

ඔබ අදහස් දක්වන්නේ ඔබේ Facebook ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )