Find Command Usage
အခုနောက်ပိုင်း Linux မှာက GUI သုံးပြီးအလွယ်တကူ Search လုပ်လို့ရနေတော့ find ဆိုတဲ့ command ကို သိပ်မသုံးဖြစ်ကြပါဘူး။ သို့ပေမယ့် ပိုမိုတိကျတဲ့ result ရရှိဖို့အတွက်ကျတော့ find ကအရမ်းအသုံးဝင်ပါတယ်။ Linux Admin တွေအနေနဲ့ သိထားသင့်တဲ့ command လေးဖြစ်တဲ့အတွက် အသုံးပြုပုံတချို့ကို ဖော်ပြပေးလိုက်ပါတယ်။
File Name ဖြင့်ရှာဖွေခြင်း
/etcအောက်မှာရှိတဲ့.confနဲ့ဆုံးတဲ့ ဖိုင်တွေကိုပဲရှာချင်တယ်ဆိုလျှင်တော့
$ find /etc -name "*.conf"
command မှာပါတဲ့
*(Asterik) လေးကတော့ wildcard character ပါ။ .conf ရှေ့မှာ ဘာ character ရှိရှိလို့ ဆိုလိုခြင်းဖြစ်ပါတယ်။
- File name စာလုံး အကြီး၊ အသေး မရွေးစေချင်လျှင်တော့
-inameဆိုတဲ့ option ကိုသုံးနိုင်ပါတယ်။-nameနဲ့ကွာခြားပုံကို အောက်မှာဖော်ပြထားတဲ့ နမူနာအတိုင်း စမ်းကြည့်နိုင်ပါတယ်။-nameoption သုံးရင်helloဆိုတဲ့တစ်ဖိုင်ပဲတွေ့ရမှာဖြစ်ပြီး-inameနဲ့ဆိုလျှင်တော့ ၃ ဖိုင်လုံးတွေ့ရပါလိမ့်မယ်။
$ mkdir testing
$ cd testing
$ touch hello HelloGuys HelloThere
$ find . -name "hel*"
./hello
$ find . -iname "hel*"
./hello
./HelloGuys
./HelloThere
Folder နှင့် File ခွဲခြားရှာဖွေခြင်း
- Folder သီးသန့်ရှာချင်တယ်ဆိုလျှင်တော့
-type doption ကိုအသုံးပြုရပြီး File ဆိုလျှင်တော့-type fကိုသုံးရပါတယ်။ နမူနာမှာတော့ testing folder အောက်မှာ HelloDir ဆိုတဲ့ folder ထပ်ဆောက်ပြီး ကွာခြားချက်ကို မြင်နိုင်အောင်ယှဉ်ပြပေးထားပါတယ်။
$ mkdir HelloDir
$ find . -type d -iname "hel*"
./HelloDir
$ find . -type f -iname "hel*"
./hello
./HelloGuys
./HelloThere
အချိန်ဖြင့်ရှာဖွေခြင်း
- လွန်ခဲ့တဲ့ ၅ရက်လောက်အတောအတွင်းမှာ edit (သို့) modify လုပ်ထားတဲ့ File တွေ Folder တွေကိုရှာချင်လျှင်တော့
-mtimeဆိုတဲ့ option ကိုသုံးနိုင်ပါတယ်။ Default Parameter ကတော့ Day နဲ့ သတ်မှတ်ပါတယ်။ လက်ရှိနေ့မှ ၅ရက်အတွင်း ရှာဖွေမှာဖြစ်တဲ့အတွက်-5လို့သတ်မှတ်ပေးရပါမယ်။5လို့ပဲသတ်မှတ်လိုက်မယ်ဆိုလျှင်တော့ ၅ရက်အတွင်းမဟုတ်တော့ဘဲ ၅ရက်မြောက်နေ့မှာ modify လုပ်ထားတဲ့ ဖိုင်တွေကိုပဲထုတ်ပြပေးမှာဖြစ်ပါတယ်။
$ find /home -mtime -5
$ find /home -mtime 5
- access လုပ်ထားတဲ့ date နဲ့ရှာချင်တယ်ဆိုလျှင်တော့
-atimeoption ကိုသုံးနိုင်ပါတယ်။ ပြီးခဲ့တဲ့ ၁၅ရက်မြောက်နေ့မှာ access လုပ်ထားခဲ့တဲ့ File တွေ Folder တွေကို ရှာချင်ရင်တော့30ဆိုတဲ့ parameter ပေးလိုက်ရင်ရပါတယ်။ အကယ်၍ ၁၅ရက်လောက် access မလုပ်ဖြစ်တဲ့ File တွေ Folder တွေကိုရှာချင်တာဆိုလျှင်တော့+15ဆိုပြီး ရက်အရေအတွက် ထည့်ပေးရပါမယ်။
$ find /home -atime 15
$ find /home -atime +15
- ရက် ၅၀ကျော်နောက်ပိုင်းကနေ ရက် ၁၀၀မြောက်နေ့အတွင်း ကိုရှာချင်တယ်ဆိုလျှင်တော့
-mtimeနှစ်ခုဆင့်သုံးနိုင်ပါတယ်။
$ find /home -mtime +50 -mtime -100
Time မှာ Default က day ဆိုပေမယ့် s (second), m (minute), h (hour), d (day), w (week) ဆိုတဲ့ unit တွေနဲ့လည်း ထည့်သုံးနိုင်ပါတယ်။
Size ဖြင့်ရှာဖွေခြင်း
- File နှင့် Folder တို့ရဲ့ Size အကြီးအသေးပေါ်မူတည်ပြီး ရှာဖွေ မယ်ဆိုလျှင်တော့
-sizeoption ရှိပါတယ်။ 5MB ပမာဏရှိတဲ့ File တွေ Folder တွေကိုရှာချင်တယ်ဆိုလျှင် -
$ find /home -size 5M
- 5MB ကနေ 20MB ပမာဏကြားရှိတဲ့ ဖိုင်တွေဆိုလျှင်တော့ -
$ find /home -size +5M -size -20M
ဒီနေရာမှာတော့
+ကို Greater Than အနေနဲ့သတ်မှတ်အသုံးပြုပြီး-ကိုတော့ Less Than အနေနဲ့အသုံးပြုပါတယ်။
User (သို့) Group ဖြင့်ရှာဖွေခြင်း
- User တစ်ယောက်ယောက်ပိုင်တဲ့ ဖိုင်တွေကိုရှာချင်တယ်ဆိုလျှင်တော့
-userဆိုတဲ့ option ကိုသုံးနိုင်ပြီး Group ဆိုလျှင်တော့-groupကိုသုံးနိုင်ပါတယ်။
$ find / -user user1
$ find / -group group1
user1 နဲ့ group1 နေရာမှာ ကိုယ်ရှာဖွေလိုတဲ့ user နဲ့ group ရဲ့ နာမည်ကို အစားထိုးအသုံးပြုရပါမယ်။
Permission ဖြင့်ရှာဖွေခြင်း
- File Permission နဲ့ရှာဖွေတဲ့နေရာမှာ Octal Numbering ဖြင့် ရှာဖွေနိုင်ပါတယ်။ Option ကတော့
-permဖြစ်ပါတယ်။ File Permission အကြောင်းကိုတော့ ဒီနေရာမှာမပြောတော့ပါဘူး။
$ find /etc -perm 0755
$ find /etc -perm 0777
Find Result အား Process ပြုလုပ်ခြင်း
အထက်မှာဖော်ပြခဲ့တဲ့
findcommand တွေရဲ့ result မှာပါဝင်တဲ့ File တွေ Directory တွေကို အခြား command တွေနဲ့တွဲပြီး Process ပြုလုပ်နိုင်ပါသေးတယ်။ အဲဒီအတွက်-execဆိုတဲ့ option နဲ့ တွဲဖက်အသုံးပြုရပါတယ်။/etcdirectory နဲ့ သူ့အောက်မှာရှိတဲ့ sub-directory တွေထဲက.confဖိုင်တွေကို Home Directory အောက်က Config ဆိုတဲ့ folder ထဲထည့်မယ်ဆိုလျှင်တော့ -
$ mkdir ~/Config
$ find /etc -type f -iname "*.conf" -exec cp {} ~/Config \;
/homedirectory နဲ့ သူ့အောက်မှာရှိတဲ့ sub-directory တွေထဲက.tmpextension နဲ့ဆုံးတဲ့ File တွေကိုရှင်းထုတ်ချင်တယ်ဆိုလျှင် -
$ find /home -type f -name "*.tmp" -exec rm -f {} \;
/homedirectory အောက်မှာရှိတဲ့ directory တွေနဲ့ sub-directory တွေထဲက Permission777ပေးထားတဲ့ directory တွေကိုရှာပြီး755အနေနဲ့ပြောင်းမယ်ဆိုလျှင်တော့ -
$ find /home -type d -perm 777 -exec chmod 755 {} \;
စသဖြင့် အသီးသီး ကွန့်မြူးချဲ့ထွင်အသုံးပြုနိုင်ပါတယ်။
တကယ်တမ်း find command က သုံးမယ်ဆို သုံးလို့ရတဲ့နည်းလမ်းတွေ အများကြီးရှိပါသေးတယ်။ အပြည့်အစုံကိုတော့ Terminal ကနေ man find နဲ့ manual page ခေါ်ပြီး လေ့လာနိုင်ပါတယ်။ အောက်က link မှာလည်း နမူနာ တချို့ကိုလေ့လာနိုင်ပါသေးတယ်။
Reference : 35 Practical Examples Of Linux Find Command
