نحوه جستجوی فایل ها بر اساس پسوند در لینوکس
در مدیریت سرورهای لینوکسی، گاهی لازم است فایل ها را بر اساس پسوندشان مثل php. یا log. جستجو نمایید. برای این کار ابزارهای مختلفی وجود دارد که پرکاربردترین آن ها find، locate و ترکیب ls با grep هستند.
1. استفاده از دستور find
دستور find یکی از قدرتمندترین ابزارهای جستجو در لینوکس است که امکان جستجو بر اساس مسیر، نام، اندازه و سایر ویژگی ها را فراهم می کند.
نحوه جستجو بر اساس پسوند با دستور find:
find /path/to/search -type f -name "*.php"
path/to/search/ مسیر مورد نظر برای جستجو است (برای مثال var/www/html/).
type f- جستجو را به فایل ها محدود می کند.
داخل دستور بالا در آپشن name- ، مشخص شده که فایل هایی با پسوند php. ، نمایش داده شوند.
جستجوی بدون حساسیت به حروف (Case-insensitive):
find /home -type f -iname "*.jpg"
این دستور تمامی فایل های با پسوند jpg، .JPG. یا ترکیبی از حروف کوچک و بزرگ را نمایش می دهد.
2. جستجو با استفاده از دستور locate
دستور locate گزینه ای بسیار سریع برای جستجو است؛ زیرا به جای بررسی مستقیم فایل ها، از پایگاه داده ایندکس شده استفاده می کند. اگر پکیج آن در سیستم عامل شما وجود ندارد، نیاز است ابتدا آن را نصب نمایید.
جهت جستجو بر اساس پسوند میتوانید به شکل زیر دستور را وارد نمایید:
locate "*.log"
نکته: برای نمایش فایل های جدید، باید ابتدا پایگاه داده locate به روزرسانی شود. بدین منظور میتوانید از دستور زیر استفاده نمایید:
updatedb
3. جستجو در پوشه های محدود با ls و grep
اگر نیاز به جستجو فقط در یک پوشه مشخص باشد، می توان از دستور ls برای فهرست کردن فایل ها استفاده کرد.
روش ساده با wildcard:
ls *.conf
این دستور تمامی فایل هایی که پسوند conf. دارند را در همان پوشه نمایش می دهد.
برای جستجوی پیچیده تر یا استفاده از الگوهای بیشتر می توان از ترکیب ls با grep نیز بهره برد.
به عنوان مثال جهت پیدا کردن فایل هایی که پسوند conf. یا cfg. دارند و نامشان شامل کلمه http باشد، میتوان از دستور زیر استفاده نمود:
ls | grep -E ".*http.*\.(conf|cfg)$"