ഡയറക്uടറികൾ കൂടുതൽ കാര്യക്ഷമമായി തിരയുന്നതിനുള്ള ഫൈൻഡ് കമാൻഡ് ഉപയോഗിക്കുന്നതിനുള്ള വഴികൾ


ഈ ട്യൂട്ടോറിയൽ നിങ്ങളെ Linux-ൽ ഒരു ഡയറക്ടറി കണ്ടെത്തുന്നതിനുള്ള വ്യത്യസ്ത വഴികളിലൂടെ കൊണ്ടുപോകും. നിങ്ങൾക്ക് ഇതിനകം അറിയാവുന്നതുപോലെ, ഒരു ഫയലോ ഡയറക്ടറിയോ തിരയുന്നതിൽ.

കമാൻഡ് ലൈനിൽ ഫയലുകൾ തിരയുന്നതിന്, കണ്ടെത്തുക, കണ്ടെത്തുക, ഏതൊക്കെ എന്നിങ്ങനെയുള്ള വിവിധ മാർഗങ്ങളും യൂട്ടിലിറ്റികളും ഉപയോഗിക്കുന്നു. എന്നിരുന്നാലും, അവസാനത്തെ യൂട്ടിലിറ്റി (ഏത്) ഒരു കമാൻഡ് കണ്ടെത്തുന്നതിന് മാത്രമാണ് ഉപയോഗിക്കുന്നത്.

ഈ ട്യൂട്ടോറിയലിന്റെ വ്യാപ്തിക്കായി, ഞങ്ങൾ പ്രധാനമായും ഫൈൻഡ് യൂട്ടിലിറ്റിയിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കും, അത് ഒരു തത്സമയ ലിനക്സ് ഫയൽസിസ്റ്റത്തിൽ ഫയലുകൾ തിരയുന്നു, കൂടാതെ ലൊക്കേറ്റിനെ അപേക്ഷിച്ച് കൂടുതൽ കാര്യക്ഷമവും വിശ്വസനീയവുമാണ്.

ലൊക്കേറ്റിന്റെ പോരായ്മ അത് അപ്uഡേറ്റ്ബി സൃഷ്ടിച്ച ഒന്നോ അതിലധികമോ ഡാറ്റാബേസുകൾ വായിക്കുന്നു എന്നതാണ്, അത് ഒരു തത്സമയ ഫയൽസിസ്റ്റം വഴി തിരയുന്നില്ല. കൂടാതെ, എവിടെ നിന്ന് (ആരംഭ പോയിന്റ്) തിരയണം എന്നതുമായി ബന്ധപ്പെട്ട വഴക്കവും ഇത് നൽകുന്നില്ല.

ലൊക്കേറ്റ് കമാൻഡ് പ്രവർത്തിപ്പിക്കുന്നതിനുള്ള വാക്യഘടന ചുവടെയുണ്ട്:

# locate [option] [search-pattern]

ലൊക്കേറ്റിന്റെ പോരായ്മ വ്യക്തമാക്കുന്നതിന്, നിലവിലെ പ്രവർത്തിക്കുന്ന ഡയറക്uടറിയിൽ pkg എന്ന പേരിൽ ഒരു ഡയറക്uടറിക്കായി തിരയുകയാണെന്ന് നമുക്ക് അനുമാനിക്കാം.

ശ്രദ്ധിക്കുക: താഴെയുള്ള കമാൻഡിൽ, --basename അല്ലെങ്കിൽ -b എന്ന ഓപ്uഷൻ, ഫയൽ (ഡയറക്uടറി) ബേസ്uനെയിമുമായി (കൃത്യമായി pkg ആണ്) പൊരുത്തപ്പെടുത്താൻ ലൊക്കേറ്റിനോട് പറയുന്നു, പക്ഷേ പാതയുമായി പൊരുത്തപ്പെടുന്നില്ല. (/പാത്ത്/ടു/പികെജി). \ എന്നത് ഒരു ഗ്ലോബിംഗ് പ്രതീകം ആണെങ്കിൽ, ഇത് pkg-നെ *pkg* ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നത് പ്രവർത്തനരഹിതമാക്കുന്നു.

$ locate --basename '\pkg'

മുകളിലുള്ള കമാൻഡ് ഔട്ട്uപുട്ടിൽ നിന്ന് നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, റൂട്ട് (/) ഡയറക്uടറിയിൽ നിന്ന് ലൊക്കേറ്റ് തിരയും, അതിനാലാണ് ഇതേ പേരിലുള്ള മറ്റ് ഡയറക്uടറികൾ പൊരുത്തപ്പെടുന്നത്.

അതിനാൽ, ഈ പ്രശ്നം കൈകാര്യം ചെയ്യാൻ, ചുവടെയുള്ള ലളിതമായ വാക്യഘടന പിന്തുടർന്ന് കണ്ടെത്തുക:

$ find starting-point options [expression]

നമുക്ക് കുറച്ച് ഉദാഹരണങ്ങൾ നോക്കാം.

മുകളിലുള്ള അതേ ഡയറക്uടറി (pkg) തിരയുന്നതിന്, നിലവിലെ പ്രവർത്തിക്കുന്ന ഡയറക്uടറിക്കുള്ളിൽ, ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക, ഇവിടെ -name ഫ്ലാഗ് ഈ കേസിൽ എക്സ്പ്രഷൻ വായിക്കുന്നു ഡയറക്ടറിയുടെ അടിസ്ഥാനനാമം.

$ find . -name "pkg"

നിങ്ങൾക്ക് \അനുമതി നിഷേധിച്ചു പിശകുകൾ നേരിടുകയാണെങ്കിൽ, ഇതുപോലെ sudo കമാൻഡ് ഉപയോഗിക്കുക:

$ sudo find . -name "pkg"

ഫയലിന്റെ തരം വ്യക്തമാക്കുന്നതിന് -type ഫ്ലാഗ് ഉപയോഗിച്ച് ഡയറക്uടറികൾ ഒഴികെയുള്ള മറ്റ് ഫയൽ തരങ്ങൾക്കായി തിരയുന്നതിൽ നിന്ന് നിങ്ങൾക്ക് കണ്ടെത്തുന്നത് തടയാം (ചുവടെയുള്ള കമാൻഡിൽ d ഡയറക്uടറി എന്നാണ് അർത്ഥമാക്കുന്നത്).

$ sudo find . -type d -name "pkg"

കൂടാതെ, നിങ്ങൾക്ക് ഡയറക്uടറി ഒരു ദൈർഘ്യമേറിയ ലിസ്റ്റിംഗ് ഫോർമാറ്റിൽ ലിസ്റ്റ് ചെയ്യണമെങ്കിൽ, പ്രവർത്തന സ്വിച്ച് -ls ഉപയോഗിക്കുക:

$ sudo find . -type d -name "pkg" -ls

അടുത്തതായി, -iname എന്ന ഓപ്ഷൻ ഒരു കേസ് സെൻസിറ്റീവ് തിരയൽ പ്രവർത്തനക്ഷമമാക്കും:

$ sudo find . -type d -iname "pkg" 
$ sudo find . -type d -iname "PKG" 

കൂടുതൽ രസകരവും നൂതനവുമായ ഉപയോഗ വിവരങ്ങൾ കണ്ടെത്താൻ, കണ്ടെത്തുന്നതിനും കണ്ടെത്തുന്നതിനും മാൻ പേജുകൾ വായിക്കുക.

$ man find
$ man locate

അവസാനത്തെ പരാമർശമെന്ന നിലയിൽ, ലൊക്കേറ്റ് കമാൻഡുമായി താരതമ്യം ചെയ്യുമ്പോൾ ലിനക്സ് സിസ്റ്റത്തിൽ ഫയലുകൾ (അല്ലെങ്കിൽ ഡയറക്ടറികൾ) തിരയുന്നതിന് ഫൈൻഡ് കമാൻഡ് കൂടുതൽ വിശ്വസനീയവും കാര്യക്ഷമവുമാണ്.

മുമ്പത്തെ അതേ രീതിയിൽ, ചുവടെയുള്ള അഭിപ്രായ വിഭാഗത്തിലൂടെ നിങ്ങളുടെ ഫീഡ്uബാക്കോ ചോദ്യങ്ങളോ ഞങ്ങൾക്ക് അയയ്ക്കാൻ മറക്കരുത്. അവസാനമായി, എപ്പോഴും Tecmint-മായി ബന്ധപ്പെട്ടിരിക്കുക.