خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
روش های سرچ کردن فایل در اوبونتو
یکی از مشکلات معمول هنگام کار با کامپیوتر این است که نمی توانید فایل هایی را که جایی ذخیره کرده اید پیدا کنید. بسیاری از برنامه های GUI به شما امکان می دهند در حین کار در سیستم عامل لینوکس، مستقل از هر توزیعی، فایل ها را سرچ کنید. البته در برخی شرایط، مثلا اگر سرورها را مدیریت می کنید یا از طریق SSH برای دسترسی به سیستم استفاده می کنید. شما فقط به terminal دسترسی خواهید داشت. اگر نمی توانید فایل های خود را پیدا کنید، باید از برنامه های خط فرمان در لینوکس برای سرچ آنها استفاده کنید.
در این آموزش خواهید دید که چگونه از طریق ترمینال خط فرمان ابونتو برای یافتن فایل های خود استفاده کنید. در ترمینال اوبونتو از طریق سه دستور Find، Locate و Grep برای سرچ فایل ها استفاده خواهیم کرد.
دستورات Find و Locate برای جستجوی فایلها در سیستم استفاده میشود در حالی که grep برای جستجوی فایل بر اساس متن موجود در آن استفاده میشود یعنی content فایل را هم سرچ می کند. find کمی کند است ولی پارامترها و شروطی را برای سرچ می دهد ولی Locate پارامترهای زیادی را شامل نمی شود ولی سریعتر عمل سرچ را انجام می دهد.
براش روع کار در اوبونتو 20.04 برنامه Terminal را باز کنید.
Find یک فرمان بسیار انعطاف پذیر است که برای جستجوی فایل ها بر اساس شرایط مختلف استفاده می شود. این ابزار بسیار کار راه انداز و کاربردی خصوصا در شرایطی که نام فایل را به خاطر نمی آورید. با استفاده از دستور Find می توانید بر اساس نام فایل و فولدر، تاریخ ایجاد، تاریخ ویرایش و مجوزها سرچ کنید. می توانید این چند شرط را در یک دستور Find ترکیب کنید. همانطور که گفتیم، این دستور قدرتمند ولی کمی هم کند است. syntax دستور به شکل زیر است:
می توانید از دستور Find برای جستجوی همه فایل ها در یک دایرکتوری خاص استفاده کنید.
به عنوان مثال، برای پیدا کردن تمام فایلهای موجود در /home/tin/Downloads/ باید دستور زیر را در ترمینال اجرا کنید:
برای جستجوی فایل های در دایرکتوری جاری با استفاده از دستور find:
برای جستجوی فایلی با نام به عنوان مثال " softwares" در دایرکتوی home، از دستور زیر در ترمینال استفاده کنید:
همچنین می توانید از کاراکترهای wildcard برای یافتن فایل هایی که با کوئری مطابقت دارند استفاده کنید.
به عنوان مثال برای سرچ فایل هایی که با کلمه "cent" شروع می شوند، دستور زیر را در ترمینال اجرا کنید:
همچنین می توانید با استفاده از دستور Find فایل های خالی را سرچ کنید که syntax ان به صورت زیر خواهد بود:
به عنوان مثال برای یافتن فایل های خالی در فولدر /home/tin، دستور زیر را در ترمینال اجرا کنید:
جستجوی فایل بر اساس تاریخ و زمان در اوبونتو: با استفاده از دستور Find، میتوانید فایلها را بسته به زمان دسترسی یا ویرایس آنها جستجو کنید. انواع زمان هایی که می توانید برای جستجوی فایل ها استفاده کنید:
به عنوان مثال، برای جستجوی فایلهایی در دایرکتوری جاری که کمتر از ۲ روز پیش تغییر کردهاند، دستور زیر را در ترمینال اجرا کنید:
برای جستجوی فایل هایی که کمتر از 2 روز پیش به آنها دسترسی پیدا کرده اید، دستور زیر را در ترمینال اجرا کنید:
برای جستجوی فایل هایی که کمتر از ۲ روز پیش تغییر کرده اند، دستور زیر را در ترمینال اجرا کنید:
به عنوان مثال، برای جستجوی فایلی که حجم آن بزرگتر از 5 مگابایت است، می توانیم از دستور زیر در ترمینال استفاده کنیم:
syntax کلی برای یافتن فایل هایی با مجوز خاص استفاده می شود بصورت زیر خواهد بود.
پارامتر Type شامل مقدار d یا f است که برای تعیین نوع فایل استفاده می شود. d برای دایرکتوری ها و f فقط برای فایل ها است.
Mode می تواند با مجوز عددی (مثلاً 777، 655.. و غیره) یا مجوز نمادین (به عنوان مثال u=x، a=r+x) باشد.
به عنوان مثال، برای جستجوی فایلی با مجوز 644، می توانیم از دستور زیر در ترمینال استفاده کنیم:
دستور دیگر Locate است که برای جستجوی فایل ها در لینوکس می تواند مورد استفاده قرار بگیرد. شرایط جستجوی آن در حد و اندازه ابزار Find نیست، اما بسیار بهتر و سریعتر از ابزار Find است. دلیل این امر فرآیند پس زمینه ای است که در واقع در سیستم شما اجرا می شود و فایل های جدید را در پایگاه داده خود ذخیره و سرچ می کند. برخلاف دستور Find، هارد دیسک لوکال شما را برای فایل ها و دایرکتوری ها جستجو نمی کند، بلکه آنها را در پایگاه داده خود جستجو می کند. پس دیتابیس آن باید مرتب آپدیت شود.
Locate به طور پیش فرض در سیستم عامل لینوکس نصب نیست و شما باید آن را به صورت دستی نصب کنید.
پس از اتمام نصب، می توانید فوراً از ابزار Locate استفاده کنید. syntax کلی دستور Locate بصورت زیر است:
-i در واقع برای نادیده گرفتن تمایز حروف است(حساس به حروف). به عنوان مثال، برای جستجوی فایلی با نام "centos"، از دستور زیر در ترمینال استفاده کنید:
تمام فایلهایی را که شامل «centos» در نام فایلهایشان هستند را جستجو میکند. البته می توانید نام چندین فایل را به طور همزمان جستجو کنید. به عنوان مثال، از دستور زیر در ترمینال برای جستجوی دو فایل "sdn.txt" و "centos" استفاده کنید:
همچنین می توانید از wildcard برای یافتن فایل هایی که با کوئری مطابقت دارند استفاده کنید. به عنوان مثال برای جستجوی تمام فایل هایی که به ".iso" ختم می شوند، از دستور زیر در ترمینال استفاده کنید:
دستور Locate برای کار به پایگاه داده خود متکی است، بنابراین باید به طور منظم آپدیت شود. دستور زیر را در ترمینال اجرا کنید تا دیتابیس ابزار Locate را آپدیت کنید.
اگرچه Grep برای جستجوی مستقیم فایل ها در سیستم شما نیست، در عوض برای جستجوی متن استفاده می شود. با این حال، میتوانید از آن برای نمایش نام فایلهایی استفاده کنید که حاوی رشته خاصی از کاراکترها هستند که با عبارت جستجوی شما مطابقت دارد. برای جستجوی یک رشته، باید آن را در گیومه یا دابل کوت قرار دهید. Syntax کلیک دستور به فرم زیر است:
[options] شامل گزینه های عمومی برای کنترل جستجو و [pattern] شامل رشته ای است که می خواهیم سرچ کنیم. اگر به دنبال فایلی هستید که حاوی کلمه خاص مد نظر شماست که گمان می کنید در دایرکتوری خاصی باشد، می توانید آن را با استفاده از دستور بالا در ترمینال جستجو کنید. به عنوان مثال، برای جستجوی فایلی که حاوی کلمه "tintin" است و فکر می کنیم آن فایل در فولدر Downloads است، می توانیم از دستور زیر برای مکان یابی آن فایل استفاده کنیم.
در این آموزش خواهید دید که چگونه از طریق ترمینال خط فرمان ابونتو برای یافتن فایل های خود استفاده کنید. در ترمینال اوبونتو از طریق سه دستور Find، Locate و Grep برای سرچ فایل ها استفاده خواهیم کرد.
دستورات Find و Locate برای جستجوی فایلها در سیستم استفاده میشود در حالی که grep برای جستجوی فایل بر اساس متن موجود در آن استفاده میشود یعنی content فایل را هم سرچ می کند. find کمی کند است ولی پارامترها و شروطی را برای سرچ می دهد ولی Locate پارامترهای زیادی را شامل نمی شود ولی سریعتر عمل سرچ را انجام می دهد.
براش روع کار در اوبونتو 20.04 برنامه Terminal را باز کنید.
Find یک فرمان بسیار انعطاف پذیر است که برای جستجوی فایل ها بر اساس شرایط مختلف استفاده می شود. این ابزار بسیار کار راه انداز و کاربردی خصوصا در شرایطی که نام فایل را به خاطر نمی آورید. با استفاده از دستور Find می توانید بر اساس نام فایل و فولدر، تاریخ ایجاد، تاریخ ویرایش و مجوزها سرچ کنید. می توانید این چند شرط را در یک دستور Find ترکیب کنید. همانطور که گفتیم، این دستور قدرتمند ولی کمی هم کند است. syntax دستور به شکل زیر است:
find /path/to/file/ -iname filename
می توانید از دستور Find برای جستجوی همه فایل ها در یک دایرکتوری خاص استفاده کنید.
find /path/to/file/
به عنوان مثال، برای پیدا کردن تمام فایلهای موجود در /home/tin/Downloads/ باید دستور زیر را در ترمینال اجرا کنید:
برای جستجوی فایل های در دایرکتوری جاری با استفاده از دستور find:
find
برای جستجوی فایلی با نام به عنوان مثال " softwares" در دایرکتوی home، از دستور زیر در ترمینال استفاده کنید:
find . -iname Softwares
همچنین می توانید از کاراکترهای wildcard برای یافتن فایل هایی که با کوئری مطابقت دارند استفاده کنید.
find /path/to/file/ -iname filename*
به عنوان مثال برای سرچ فایل هایی که با کلمه "cent" شروع می شوند، دستور زیر را در ترمینال اجرا کنید:
find /home/tin/ -iname cent*
همچنین می توانید با استفاده از دستور Find فایل های خالی را سرچ کنید که syntax ان به صورت زیر خواهد بود:
find /path/to/file/ -iname -empty
به عنوان مثال برای یافتن فایل های خالی در فولدر /home/tin، دستور زیر را در ترمینال اجرا کنید:
find /home/tin/ -empty
جستجوی فایل بر اساس تاریخ و زمان در اوبونتو: با استفاده از دستور Find، میتوانید فایلها را بسته به زمان دسترسی یا ویرایس آنها جستجو کنید. انواع زمان هایی که می توانید برای جستجوی فایل ها استفاده کنید:
mtime (Modification time)
atime (Access time)
ctime (Change time)
ctime (Change time)
به عنوان مثال، برای جستجوی فایلهایی در دایرکتوری جاری که کمتر از ۲ روز پیش تغییر کردهاند، دستور زیر را در ترمینال اجرا کنید:
find . -mtime -2
برای جستجوی فایل هایی که کمتر از 2 روز پیش به آنها دسترسی پیدا کرده اید، دستور زیر را در ترمینال اجرا کنید:
find . –atime -2
برای جستجوی فایل هایی که کمتر از ۲ روز پیش تغییر کرده اند، دستور زیر را در ترمینال اجرا کنید:
find . –ctime -2
به عنوان مثال، برای جستجوی فایلی که حجم آن بزرگتر از 5 مگابایت است، می توانیم از دستور زیر در ترمینال استفاده کنیم:
find . –size +5M\
syntax کلی برای یافتن فایل هایی با مجوز خاص استفاده می شود بصورت زیر خواهد بود.
find /path/to/file/ -type -perm mode
پارامتر Type شامل مقدار d یا f است که برای تعیین نوع فایل استفاده می شود. d برای دایرکتوری ها و f فقط برای فایل ها است.
Mode می تواند با مجوز عددی (مثلاً 777، 655.. و غیره) یا مجوز نمادین (به عنوان مثال u=x، a=r+x) باشد.
به عنوان مثال، برای جستجوی فایلی با مجوز 644، می توانیم از دستور زیر در ترمینال استفاده کنیم:
find . –type f –perm 644
دستور دیگر Locate است که برای جستجوی فایل ها در لینوکس می تواند مورد استفاده قرار بگیرد. شرایط جستجوی آن در حد و اندازه ابزار Find نیست، اما بسیار بهتر و سریعتر از ابزار Find است. دلیل این امر فرآیند پس زمینه ای است که در واقع در سیستم شما اجرا می شود و فایل های جدید را در پایگاه داده خود ذخیره و سرچ می کند. برخلاف دستور Find، هارد دیسک لوکال شما را برای فایل ها و دایرکتوری ها جستجو نمی کند، بلکه آنها را در پایگاه داده خود جستجو می کند. پس دیتابیس آن باید مرتب آپدیت شود.
Locate به طور پیش فرض در سیستم عامل لینوکس نصب نیست و شما باید آن را به صورت دستی نصب کنید.
sudo apt-get install locate
پس از اتمام نصب، می توانید فوراً از ابزار Locate استفاده کنید. syntax کلی دستور Locate بصورت زیر است:
locate –i filename
-i در واقع برای نادیده گرفتن تمایز حروف است(حساس به حروف). به عنوان مثال، برای جستجوی فایلی با نام "centos"، از دستور زیر در ترمینال استفاده کنید:
locate –i centos
تمام فایلهایی را که شامل «centos» در نام فایلهایشان هستند را جستجو میکند. البته می توانید نام چندین فایل را به طور همزمان جستجو کنید. به عنوان مثال، از دستور زیر در ترمینال برای جستجوی دو فایل "sdn.txt" و "centos" استفاده کنید:
locate –i sdn.txt centos
همچنین می توانید از wildcard برای یافتن فایل هایی که با کوئری مطابقت دارند استفاده کنید. به عنوان مثال برای جستجوی تمام فایل هایی که به ".iso" ختم می شوند، از دستور زیر در ترمینال استفاده کنید:
locate –i *.iso
دستور Locate برای کار به پایگاه داده خود متکی است، بنابراین باید به طور منظم آپدیت شود. دستور زیر را در ترمینال اجرا کنید تا دیتابیس ابزار Locate را آپدیت کنید.
sudo updatedb
اگرچه Grep برای جستجوی مستقیم فایل ها در سیستم شما نیست، در عوض برای جستجوی متن استفاده می شود. با این حال، میتوانید از آن برای نمایش نام فایلهایی استفاده کنید که حاوی رشته خاصی از کاراکترها هستند که با عبارت جستجوی شما مطابقت دارد. برای جستجوی یک رشته، باید آن را در گیومه یا دابل کوت قرار دهید. Syntax کلیک دستور به فرم زیر است:
grep [options] [pattern] [/path/to/file]
[options] شامل گزینه های عمومی برای کنترل جستجو و [pattern] شامل رشته ای است که می خواهیم سرچ کنیم. اگر به دنبال فایلی هستید که حاوی کلمه خاص مد نظر شماست که گمان می کنید در دایرکتوری خاصی باشد، می توانید آن را با استفاده از دستور بالا در ترمینال جستجو کنید. به عنوان مثال، برای جستجوی فایلی که حاوی کلمه "tintin" است و فکر می کنیم آن فایل در فولدر Downloads است، می توانیم از دستور زیر برای مکان یابی آن فایل استفاده کنیم.
grep -r –i “tintin” /home/tin/Downloads
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: