မကြာခဏမေးခွန်း- Linux တွင် hard link ကဘာလဲ။

ဟာ့ဒ်လင့်ခ်သည် အခြားဖိုင်တစ်ခုကဲ့သို့ တူညီသောအရင်းခံ အိုင်အိုဒိတ်ကို ညွှန်ပြသည့် ဖိုင်တစ်ခုဖြစ်သည်။ ဖိုင်တစ်ဖိုင်ကို ဖျက်ပါက၊ ၎င်းသည် နောက်ခံ inode သို့ လင့်ခ်တစ်ခုကို ဖယ်ရှားမည်ဖြစ်သည်။ သင်္ကေတလင့်ခ် (soft link ဟုလည်းလူသိများသည်) သည် ဖိုင်စနစ်ရှိ အခြားဖိုင်အမည်သို့ လင့်ခ်တစ်ခုဖြစ်သည်။

ကွန်ပြူတာတွင်၊ hard link သည် ဖိုင်စနစ်ရှိ ဖိုင်တစ်ခုနှင့် အမည်တစ်ခုကို ဆက်စပ်ပေးသည့် လမ်းညွှန်တစ်ခုဖြစ်သည်။ လမ်းညွှန်အခြေပြု ဖိုင်စနစ်အားလုံးတွင် ဖိုင်တစ်ခုစီအတွက် မူရင်းအမည်ကို ပေးသည့် hard link တစ်ခု အနည်းဆုံးရှိရပါမည်။ “hard link” ဟူသော အသုံးအနှုန်းကို အများအားဖြင့် ဖိုင်တစ်ခုတည်းအတွက် hard link တစ်ခုထက်ပိုသော ဖိုင်စနစ်များတွင်သာ အသုံးပြုသည်။

Linux တွင် Soft Link နှင့် Hard Link ဟူသည် အဘယ်နည်း။ သင်္ကေတ သို့မဟုတ် ပျော့ပျောင်းသောလင့်ခ်သည် မူရင်းဖိုင်သို့ အမှန်တကယ်လင့်ခ်တစ်ခုဖြစ်ပြီး hard link သည် မူရင်းဖိုင်၏မှန်မိတ္တူတစ်ခုဖြစ်သည်။ မူရင်းဖိုင်ကို ဖျက်ပါက၊ ပျော့ပျောင်းသောလင့်ခ်သည် မရှိသောဖိုင်ကို ညွှန်ပေးသောကြောင့် တန်ဖိုးမရှိပါ။

အကယ်၍ သင်သည် ဟာ့ဒ်လင့်ခ်တစ်ခု၏ 'my-hard-link' ကို ဖျက်ပါက၊ ဟာ့ဒ်ဒရိုက်ရှိ တူညီသောနေရာလွတ် (inode) ကို ညွှန်ပြသော ကျန်ဖိုင်များသည် ဟာ့ဒ်ဒရိုက်တွင် သိမ်းဆည်းထားသည့် ဒေတာများ ပါဝင်နေမည်ဖြစ်သည်။

Hard link သည် ၎င်းညွှန်ပြနေသည့် တကယ့်ဖိုင်၏ အတိအကျ ပုံတူဖြစ်သည်။ hard link နှင့် linked file နှစ်ခုစလုံးသည် တူညီသော inode ကို မျှဝေပါသည်။ အရင်းအမြစ်ဖိုင်ကို ဖျက်လိုက်လျှင် hard link သည် အလုပ်လုပ်ဆဲဖြစ်ပြီး ဖိုင်သို့ hard link အရေအတွက် 0(သုည) မဟုတ်သည့်တိုင်အောင် သင်သည် ဖိုင်ကို ဝင်ရောက်ကြည့်ရှုနိုင်မည်ဖြစ်သည်။

ပုံဆောင်လင့်ခ်တစ်ခုဖန်တီးရန် Linux သည် -s ရွေးချယ်မှုဖြင့် ln command ကိုသုံးပါ။ ln command နှင့်ပတ်သက်သော နောက်ထပ်အချက်အလက်များအတွက်၊ ln man စာမျက်နှာသို့ ဝင်ရောက်ကြည့်ရှုပါ သို့မဟုတ် သင်၏ terminal တွင် man ln ကို ရိုက်ထည့်ပါ။ သင့်တွင် မေးခွန်းများ သို့မဟုတ် အကြံပြုချက်တစ်စုံတစ်ရာရှိပါက မှတ်ချက်တစ်ခုချန်ထားခဲ့ပါ။

တူညီသောဂုဏ်သတ္တိများပါရှိသော ဖိုင်နှစ်ခုကို သင်တွေ့ရှိသော်လည်း ၎င်းတို့သည် ဟာ့ဒ်လင့်ခ်ချိတ်ခြင်းရှိမရှိ မသေချာပါက၊ inode နံပါတ်ကိုကြည့်ရှုရန် ls -i command ကိုသုံးပါ။ ခက်ခက်ခဲခဲချိတ်ဆက်ထားသော ဖိုင်များသည် တူညီသော inode နံပါတ်ကို မျှဝေပါသည်။ မျှဝေထားသော အိုင်အိုဒိတ်နံပါတ်သည် 2730074 ဖြစ်ပြီး ဆိုလိုသည်မှာ ဤဖိုင်များသည် တူညီသောဒေတာများဖြစ်သည်။

Linux သို့မဟုတ် Unix ကဲ့သို့သော စနစ်တွင် ခက်ခဲသောလင့်ခ်များကို ဖန်တီးရန်-

  1. sfile1file နှင့် link1file ကြားတွင် hard link ကိုဖန်တီးပါ၊ run- ln sfile1file link1file။
  2. ခက်ခဲသောလင့်ခ်များအစား သင်္ကေတလင့်ခ်များပြုလုပ်ရန်၊ ln -s အရင်းအမြစ်လင့်ခ်ကို အသုံးပြုပါ။
  3. Linux ပေါ်ရှိ ပျော့ပျောင်းသော သို့မဟုတ် မာကြောသောလင့်ခ်များကို အတည်ပြုရန်- ls -l အရင်းအမြစ်လင့်ခ်ကို ဖွင့်ပါ။

၂၉ окт ၂၀၁၈ ခုနှစ်။

4 အဖြေများ။ ဤပို့စ်တွင် လှုပ်ရှားမှုကို ပြပါ။ ၎င်းကို ပုံမှန်အတိုင်း rm ဖြင့် ဖျက်နိုင်သည်- rm NameOfFile . ခက်ခဲသောလင့်ခ်များဖြင့် "မူရင်းဖိုင်" နှင့် "ဖိုင်သို့လင့်ခ်" အကြား ကွဲပြားမှုမရှိသည်ကို သတိပြုပါ- သင့်တွင် တူညီသောဖိုင်အတွက် အမည်နှစ်ခုသာရှိပြီး အမည်များထဲမှ တစ်ခုကို ဖျက်လိုက်လျှင် အခြားတစ်ခုကို ဖျက်မည်မဟုတ်ကြောင်း သတိပြုပါ။

သင်၏ Linux ဖိုင်စနစ်တွင်၊ လင့်ခ်သည် ဖိုင်အမည်နှင့် ဒစ်ခ်ပေါ်ရှိ အမှန်တကယ်ဒေတာများကြား ချိတ်ဆက်မှုတစ်ခုဖြစ်သည်။ ဖန်တီးနိုင်သော အဓိက လင့်ခ် နှစ်မျိုးရှိသည်- “ခက်” လင့်ခ်များနှင့် “ပျော့” သို့မဟုတ် ပုံဆောင်လင့်ခ်များ။ … သင်္ကေတလင့်ခ်သည် ပစ်မှတ်ဟုခေါ်သော အခြားဖိုင် သို့မဟုတ် လမ်းညွှန်ကိုညွှန်ပြသည့် အထူးဖိုင်တစ်ခုဖြစ်သည်။

ဟုတ်ကဲ့။ ၎င်းတို့နှစ်ဦးစလုံးသည် လမ်းညွှန်ထည့်သွင်းမှုများရှိနေသေးသောကြောင့် ၎င်းတို့နှစ်ဦးလုံး နေရာယူထားသည်။

ဖိုင်တစ်ခုသည် [ -L ဖိုင် ] ပါသော သင်္ကေတလင့်ခ် ဟုတ်မဟုတ် စစ်ဆေးနိုင်သည်။ အလားတူ၊ ဖိုင်တစ်ခုသည် [ -f ဖိုင် ] ပါသည့် ပုံမှန်ဖိုင်ဟုတ်မဟုတ် စမ်းသပ်နိုင်သည်၊ သို့သော် ယင်းအခြေအနေတွင်၊ symlinks များကို ဖြေရှင်းပြီးနောက် စစ်ဆေးမှုကို ပြီးမြောက်သည်။ ဟာ့ဒ်လင့်ခ်များသည် ဖိုင်အမျိုးအစားမဟုတ်ပါ၊ ၎င်းတို့သည် ဖိုင်တစ်ခုအတွက် (မည်သည့်အမျိုးအစားမဆို) ကွဲပြားသောအမည်များသာဖြစ်သည်။

ပုံဆောင်လင့်ခ်တစ်ခုကို ဖယ်ရှားရန်၊ rm သို့မဟုတ် unlink command ကို အသုံးပြု၍ အငြင်းအခုံတစ်ခုအဖြစ် symlink ၏အမည်ဖြင့် လိုက်နာပါ။ လမ်းညွှန်တစ်ခုသို့ညွှန်ပြသော သင်္ကေတလင့်ခ်ကို ဖယ်ရှားသည့်အခါ သင်္ကေတလင့်ခ်အမည်တွင် trailing slash ကို ထပ်မထည့်ပါနှင့်။ သင့်တွင် မေးခွန်းများ သို့မဟုတ် အကြံပြုချက်တစ်စုံတစ်ရာရှိပါက မှတ်ချက်တစ်ခုချန်ထားခဲ့ပါ။

ဟာ့ဒ်လင့်ခ်များနှင့် သင်္ကေတလင့်ခ်များသည် ဟာ့ဒ်ဒရိုက်အတွင်းရှိ ဖိုင်တစ်ခုကို ရည်ညွှန်းရန် မတူညီသောနည်းလမ်းနှစ်ခုဖြစ်သည်။ … hard link သည် အခြေခံအားဖြင့် ဖိုင်တစ်ခု၏ inode သို့ တိုက်ရိုက်ရည်ညွှန်းသော ဖိုင်တစ်ခု၏ ထပ်တူပြုထားသော ကာဗွန်ကော်ပီတစ်ခုဖြစ်သည်။ အခြားတစ်ဖက်တွင် သင်္ကေတလင့်ခ်များသည် inode ကိုရည်ညွှန်းသည့် ဖြတ်လမ်းလင့်ခ်တစ်ခုဖြစ်သည့် ဖိုင်ကို တိုက်ရိုက်ရည်ညွှန်းသည်။

ဖိုင်မန်နေဂျာရှိ ပရိုဂရမ်လမ်းညွှန်၊ ၎င်းသည် /mnt/partition/ အတွင်းရှိ ဖိုင်များပါ၀င်သည် ။ အစီအစဉ်။ “soft links” ဟုလည်းသိကြသော “symbolic links” အပြင်၊”hard link” ကိုဖန်တီးနိုင်သည်။ သင်္ကေတ သို့မဟုတ် ပျော့ပျောင်းသောလင့်ခ်သည် ဖိုင်စနစ်ရှိ လမ်းကြောင်းကို ညွှန်ပြသည်။

hard-linking directories များကို ခွင့်မပြုရခြင်းမှာ နည်းပညာပိုင်း အနည်းငယ်သာ ဖြစ်ပါသည်။ အခြေခံအားဖြင့်၊ ၎င်းတို့သည် ဖိုင်စနစ်တည်ဆောက်ပုံကို ချိုးဖျက်သည်။ ယေဘူယျအားဖြင့် ခက်ခဲသောလင့်ခ်များကို မသုံးသင့်ပါ။ Symbolic လင့်ခ်များသည် ပြဿနာမဖြစ်စေဘဲ တူညီသောလုပ်ဆောင်နိုင်စွမ်းအများစုကို ခွင့်ပြုသည် (ဥပမာ ln -s ပစ်မှတ်လင့်ခ်)။

ဒီပို့စ်ကိုကြိုက်လား။ ကျေးဇူးပြု၍ သင်၏မိတ်ဆွေများကိုမျှဝေပါ။
OS ယနေ့