Post

#03 Understanding About Directory Paths

#03 Understanding About Directory Paths

Understanding About Directory Paths

Image

  • Linux File System ပေါ်မှာ ရှိတဲ့ file or directory တွေရဲ့ တည်နေရာ တွေကို ဖော်ပြတဲ့အခါမှာ path တွေကို အသုံးပြုတာ ဖြစ်ပါတယ်။
  • ကျွန်တော်တို့ Linux မှာ Hierarchy File System တည်ဆောက်ထားပုံကို နားလည်သွားပြီဆိုရင်တော့ linux file system ပေါ်မှာ ရှိတဲ့ file or directory တွေကို copy , move , rename , edit စတဲ့ basic tasks တွေကိုလည်း စတင် လုပ်ဆောင်လို့ ရပြီ ဖြစ်ပါတယ်။

  • ထိုကဲ့သို့ basic tasks တွေ လုပ်ဆောင်နိုင်ဖို့ရန်အတွက် file or directory တွေရဲ့ တည်နေရာ path လမ်းကြောင်းတွေကို အသုံးပြုပြီး လုပ်ဆောင်ရမှာ ဖြစ်ပါတယ်။

  • Linux file system ပေါ်မှာ ရှိတဲ့ file or directory တွေရဲ့ တည်နေရာ လမ်းကြောင်းကို သတ်မှတ်အသုံးပြုတဲ့အခါမှာ
    • Absolute Path နဲ့
    • Relative Path ဆိုပြီး နည်းလမ်း ( 2 ) နည်း ရှိပါတယ်။
  • File or directoryတွေကို ကောင်းကောင်း manipulate လုပ်နိုင်ဖို့ရန်အတွက်ဆိုရင် absolute path နဲ့ relative path အသုံးပြုပုံ ကွာခြားချက်ကိုလည်း မဖြစ်မနေ သိထားရမှာ ဖြစ်ပါတယ်။

Absolute Path

  • Absolute path သည် အမြဲတမ်း file or directory တစ်ခုရဲ့ လမ်းကြောင်း အပြည့်အစုံကို root / ကနေ စပြီး ရေးရတာဖြစ်တယ်။
  • Linux file system ရဲ့ starting point ဖြစ်တဲ့ / root ကနေ စတင်ပြီး လမ်းကြောင့် အပြည့်အစုံကို တစ်ခါတည်းရေး ရတာ ဖြစ်တဲ့ အတွက်ကြောင့် ကိုယ်ညွှန်းချင်တဲ့ file or directory တွေရဲ့လမ်းကြောင်းကို အတိအကျ သိထားရမှာ ဖြစ်ပါတယ်။
  • Absolute Path ရဲ့ အားသာချက်က တော့ file or directory ရဲ့ တည်နေရာ လမ်းကြောင်း အပြည့်အစုံကို ရေးပြီး အသုံးပြုတာ ဖြစ်တဲ့ အတွက်ကြောင့် ပိုပြီး တိကျ မှန်ကန်မှု ရှိပါတယ်။
  • Bash script တွေရေးတဲ့ အခါမှာ ဆိုရင်တော့ relative path ထက် ပိုပြီး တိကျမှုရှိတဲ့ absolute path ကို အသုံးပြုတာ များပါတယ်။
  • အားနဲချက် ကတော့ ကျွန်တော်တို့ file or directory တွေကို တစ်ခုခု manipulate ပြုလုပ်ချင်တိုင်း absolute path ကိုဘဲ အမြဲ အသုံးပြုမယ်ဆိုရင် relative path အသုံးပြုတာထက် ပိုပြီးတော့ အချိန်ကုန် လူပင်ပန်း စေပါတယ်။

  • Absolute Path Example
  • On Linux: /home/sysadmin/Documents/hello.txt
  • On Mac: /Users/sysadmin/Documents/hello.txt
  • On Windows: C:\Users\sysadmin\Documents\hello.txt

  • အထက်ပါ example မှာ ဆိုရင် window,mac,linux မှာ hello.txt file လေးရဲ့ absolute path ရေးပုံ လေးကို နမူနာအနေနဲ့ ပြထားပါတယ်။
  • Mac OS နဲ့ Linux မှာဆိုရင်တော့ file or directory တွေရဲ့ absolute path သည် အမြဲတမ်း / root ကနေ စတင်မှာ ဖြစ်ပါတယ်။
  • Window မှာဆိုရင်တော့ မတူညီတဲ့ drive letter တွေ ရှိနိုင်တဲ့အတွက် absolute path သည် C:\ D:\ E:\ တို့နဲ့ စတာကို တွေ့ရမှာ ဖြစ်ပါတယ်။

Image

  • /home/sysadmin/Desktop/runme.sh path သည် runme.sh script file ရဲ့ linux file system ပေါ်မှာ တည်ရှိတဲ့ absolute path ဖြစ်ပါတယ်။
  • Absolute path ဖြစ်တဲ့အတွက်ကြောင့် / ROOT ကနေ စတာကို တွေ့ရမှာ ဖြစ်ပါတယ်။
  • Path လမ်းကြောင်းတွေရေးတဲ့အခါ အစ ဆုံးမှာတွေ့ရတဲ့ / သည် ROOT directory ဖြစ်ပြီး ကြားထဲမှာတွေ့ရတဲ့ / တွေသည် Separators တွေ ဖြစ်ကြပါတယ်။

Relative path

Image Image

  • Relative path ကတော့ အမြဲတမ်း မိမိလက်ရှိ ရောက်ရှိနေသော directory ကနေစတင်ပြီး လမ်းညွှန်တာ ဖြစ်ပါတယ်။
  • အပေါ်က example ကို ကြည့်ပြီး relative path ကို လေ့လာ ကြည့်ရအောင်။
  • ပထမဆုံး pwd command သည် ကိုယ် အခု လက်ရှိ ရောက်နေတဲ့ directory ကို စစ်ကြည့်တာ ဖြစ်ပါတယ်။
  • /home/sysadmin directory ထဲမှာ ရောက်နေတာကို တွေ့ရမှာ ဖြစ်ပါတယ်။
  • ls command ကို အသုံးပြုပြီး list လုပ်ကြည့်တဲ့အခါ Desktop Documents Download Music Pictures စတဲ့ directory ကို တွေ့ရမှာ ဖြစ်ပါတယ်။
  • ကျွန်တော်တို့ access ပြုလုပ်ချင်တဲ့ runme.sh sciprt file သည် Desktop directory ထဲမှာ ရှိတာ ဖြစ်တဲ့အတွက်ကြောင့် relative path ကို အသုံးပြုပြီး အလွယ်တကူ access ပြုလုပ်နိုင်ပါတယ်။ cat Desktop/runme.sh
  • Absoulte path ကိုအသုံးပြုမယ်ဆိုရင်တော့ cat /home/sysadmin/Desktop/runme.sh ဆိုပြီး / ROOT ကနေ စတင်ပြီး path လမ်းကြောင်း အပြည့်အစုံ အတိအကျ ရေးပေးရမှာ ဖြစ်ပါတယ်။
  • cat command ကတော့ file တစ်ခုအတွင်းမှာ ပါဝင်တဲ့ content တွေကို standard output အနေနဲ့ terminal မှာ ကြည့်လိုတဲ့အခါ အသုံးပြုတာ ဖြစ်ပါတယ်။

Understanding About Single Dot . and Double Dot . . Directory

Image

  • Linux System မှာ ရှိတဲ့ directory တိုင်း မှာ . နဲ့ .. directory နှစ်ခု အမြဲတမ်း ပါတာကို တွေ့ရမှာ ဖြစ်ပါတယ်။
  • ls -la command ကို အသုံးပြုပြီး စစ်ကြည့်နိုင်ပါတယ်။
  • . directory ကို The "Here and Now" Directory လို့လည်း ခေါ်ပါတယ်။
  • ကိုယ်လက်ရှိရောက်နေတဲ့ directory ကိုဘဲ ပြန်လည် ညွှန်းချင်တဲ့အခါ မှာ . directory ကို အသုံးပြုတာ ဖြစ်ပါတယ်။
  • ဥပမာ ကိုယ်ရောက်ရှိနေတဲ့ directory အတွင်းမှာရှိတဲ့ script file ကို run တဲ့အခါမျိုးတွေမှာဆို အသုံးပြုကြပါတယ်။
1
2
3
4
5
6
7
8
9
sysadmin@openshellmmcom:~/Desktop$ 
sysadmin@openshellmmcom:~/Desktop$ pwd   #check current directory
/home/sysadmin/Desktop
sysadmin@openshellmmcom:~/Desktop$ ls    # list content
runme.sh
sysadmin@openshellmmcom:~/Desktop$ 
sysadmin@openshellmmcom:~/Desktop$ 
sysadmin@openshellmmcom:~/Desktop$ ./runme.sh  #execute runme.sh file

  • နောက်ထပ် directory အမျိုးအစားတစ်ခုက တော့ Double Dot .. Take me back directory ဖြစ်ပါတယ်။
  • .. directory သည် ကိုယ်လက်ရှိရောက်နေတဲ့ directory ရဲ့ parent directory ကို ရည်ညွှန်းတာ ဖြစ်ပါတယ်။
  • ဥပမာ /A/B/C/D directory path မှာဆိုရင် C သည် D ရဲ့ parent directory ဖြစ်ပါတယ်။ B သည် C ရဲ့ parent directory ဖြစ်ပါတယ်။ ထိုနည်းတူ / သည် A ရဲ့ parent directory ဖြစ်ပါတယ်။
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
root@openshellmmcom:/A/B/C/D# 
root@openshellmmcom:/A/B/C/D# pwd
/A/B/C/D
root@openshellmmcom:/A/B/C/D# 
root@openshellmmcom:/A/B/C/D# cd ..
root@openshellmmcom:/A/B/C# 
root@openshellmmcom:/A/B/C# pwd
/A/B/C
root@openshellmmcom:/A/B/C# 
root@openshellmmcom:/A/B/C# cd ..
root@openshellmmcom:/A/B# 
root@openshellmmcom:/A/B# pwd
/A/B
root@openshellmmcom:/A/B# 
root@openshellmmcom:/A/B# cd ..
root@openshellmmcom:/A# 
root@openshellmmcom:/A# pwd
/A
root@openshellmmcom:/A# cd ..
root@openshellmmcom:/# 




  • ကိုယ် လက်ရှိရောက်နေတဲ့ directory ကနေ parent directory ကို ပြောင်းလိုတဲအခါမှာ cd .. ကို အသုံးပြုနိုင်ပါတယ်။

Image

1
2
3
4
5
6
7
8
9
10
11
12
root@openshellmmcom:/home/sysadmin# 
root@openshellmmcom:/home/sysadmin# pwd
/home/sysadmin
root@openshellmmcom:/home/sysadmin# 
root@openshellmmcom:/home/sysadmin# cd ../netadmin/Desktop/
root@openshellmmcom:/home/netadmin/Desktop# 
root@openshellmmcom:/home/netadmin/Desktop# 
root@openshellmmcom:/home/netadmin/Desktop# pwd
/home/netadmin/Desktop
root@openshellmmcom:/home/netadmin/Desktop# 
root@openshellmmcom:/home/netadmin/Desktop# 

  • အပေါ်က example ကို လေ့လာ ကြည့်ရအောင်။
  • pwd command ကိုအသုံးပြုပြီး လက်ရှိရောက်နေတဲ့နေရာကို စစ်ကြည့်တာ ဖြစ်ပါတယ်။
  • /home/sysadmin မှာ ရောက်နေတာကို တွေ့ရမှာ ဖြစ်ပါတယ်။
  • ကျွန်တော်တို့ /home/netadmin/Desktop directory ဆီကို သွားချင်တာ ဖြစ်ပါတယ်။
  • Relative Path ကို အသုံးပြုမယ်ဆိုရင်တော့ cd ../netadmin/Desktop ဆိုပြီး parent directory ကနေတစ်ဆင့် netadmin/Desktop directory ထဲကို သွားတာ ဖြစ်ပါတယ်။
  • Absolute path ဆိုရင်တော့ cd /home/netadmin/Desktop/ ဆိုပြီး‌ ရေးပေးရမှာ ဖြစ်ပါတယ်။

  • အခု လောက်ဆိုရင်တော့ Absolute Path နဲ့ Relative Path အကြောင်း နားလည် လောက်ပြီလို့ထင်ပါတယ်။ အဆုံးထိ ဖတ်ပေးတဲ့ ကျေးဇူးတင်ပါတယ်။
This post is licensed under CC BY 4.0 by the author.