یکی دیگر از ابزارهایی که برای جستجو استفاده میشود ابزار find است . ابزار find تقریبا شبیه به locate است اما در کارکرد تفاوت های بسیاری دارد که اگر شما توضیحات مربوط به ابزار locate را خوانده باشید متوجه خواهید شد.لازم به ذکر است بدانید که می توانید به این ابزار rejex هم بدهید و در آخر هم شما با استفاده از این ابزار میتوانید هرچیزی در هرنقطه ای از هاردتان را پیدا کنید.
با استفاده از دستور find مسیر و یک نام برای جستجو میتوانید کارتان را با ابزار شروع کنید.
$ find ~ 'amirhosein.txt'
اگر میخواهید که فقط به دنبال فایل یا پوشه ها بگردید میتوانید از سوییچ type- و آپشن های d & f کمک بگیرید. سوییچ d به جستجوی دایرکتوری ها و سوییچ f به جستجوی فایل ها میپردازد.
$ find /home -type d directoryname $ find /home -type f file name
اگر بخواهید در جستجویتان ابزار روی حروف بزرگتر و کوچکتر حساسیت نشان ندهد از سوییچ iname- استفاده کنید. برعکس همین دستور یعنی name- هم وجود دارد که در صورت استفاده ابزار به حروف بزرگتر و کوچکتر جساسیت نشان خواهد داد..
$ find /home/amirhosein/Downloads -name 'amir' Or $ find /home/amirhosein/Downloads -iname 'amir'
اگر میخواهید بر اساس پرمیژن ها به جستجو بپردازید میتوانید از آپشن prem استفاده کنید. در مثال زیر به دنبال فایلهایی با دسترسی ۷۷۷ هستیم.
$ find /home -type f -perm 777 -name amir.py
قبل از اینکه به جستجوی فایل ها بر اساس تاریخ و ساعت بپردازید لازم است بدانید که تغییرات در فایل های لینوکسی به چه صورت انجام میشود. Modified که با m مشخص می شود و به معنی تغییر در محتوای فایل است. Accessed که با a مشخص می شود که به معنی دسترسی ( خواندن ) فایل است. Changed که با c مشخص می شود و معادل با تغییر در متا دیتای ( Metadata ) فایل است. ولی محتوا دست نخورده باقی مانده است. در آپشن مورد استفاده برای این بخش اگر از time استفاده شود ، عدد مقابل آن به معنی روز است و اگر از min استفاده شد عدد مقابل آن معرف تعداد دقیقه است. به مثال های زیر توجه کنید.
# search by day $ find /home -mtime 10 $ find /home -atime 10 $ find /home -ctime 10 # search by minute $ find /home -mmin 10 $ find /home -amin 10 $ find /home -cmin 10
اگر خواستید که فقط فایلهایی با پسوند خواص برای شما در جستجو نمایش داده شود از نمونه دستور زیر استفاده کنید.
$ find /home/amirhosein '*.jpeg'
اگر خواستید که فقط فایلهایی با حجم مشخص را ببینید از سوییچ size- استفاده کنید. اگر میخواستید که فایلهایی با بالاتر از حجم مشخص شده جستجو شود از علامت بعلاوه در کنار عدد مربوطه استفاده کنید.
$ find /home/Downloads -size 1G Or $ find /home/Downloads -size +100b $ find /home/Downloads -size +100M $ find /home/Downloads -size +1G
اگر خواستید که فایل هایی با چند فرمت مختلف را مشاهده کنید میتوانید از نمونه دستور زیر استفاده کنید.
$ find ~ ( -iname 'jpeg' -o -iname 'jpg' )