دستورات جستجوی لینوکس

دستورات جستجوی لینوکس

دستورات جستجوی لینوکس در دسته بندی دستورات لینوکس شامل چندین دستور برای جستجو و پیدا کردن فایل‌ها و همچنین محتوای درون فایل‌ها می‌باشد. هر کدام از دستورات جستجوی لینوکس کاربرد خاصی دارند.

در ادامه، دستورات جستجوی لینوکس را همراه با توضیحات، تفاوت‌ها و مثال‌های کاربردی بیان می‌کنیم.

لیست کامل دستورات جستجوی لینوکس همراه با مثال

دستور find

در بین دستورات جستجوی لینوکس دستور find برای جستجوی فایل‌ها و دایرکتوری‌ها بر اساس معیارهایی مثل نام، نوع فایل، اندازه، تاریخ تغییر و غیره استفاده می‌شود. مثال‌ها:
جستجوی یک فایل با نام مشخص:

find /path/to/search -name filename.txt

در این مثال، سیستم فایل‌هایی به نام filename.txt را در مسیر مشخص شده جستجو می‌کند.

جستجوی فایل‌هایی که در ۷ روز گذشته تغییر کرده‌اند:

find /path/to/search -type f -mtime -7

جستجوی دایرکتوری‌ها:

find /path/to/search -type d

جستجوی فایل‌های بزرگ‌تر از 100 مگابایت:

find /path/to/search -type f -size +100M

جستجوی فایل‌ها و اجرای یک دستور خاص برای آن‌ها (مثلاً حذف فایل‌های قدیمی):

find /path/to/search -type f -mtime +30 -exec rm {} \;

کاربرد دستور locate در دستورات جستجوی لینوکس

کاربرد این دستور برای جستجوی سریع فایل‌ها بر اساس نام است. این دستور از یک دیتابیس داخلی استفاده می‌کند و بسیار سریع‌تر از find است، اما نیازمند بروزرسانی دیتابیس می‌باشد. مثال‌ها:

جستجوی یک فایل با نام filename:

locate filename

بروزرسانی دیتابیس locate:

updatedb

کاربرد دستور which در دستورات جستجوی لینوکس

از این دستور برای پیدا کردن مسیر کامل اجرایی یک دستور یا برنامه استفاده می‌شود. مثال‌ها:

دستورات جستجوی لینوکس

پیدا کردن مسیر برنامه ls:

which ls

یدا کردن مسیر python:

which python

دستور whereis

برای جستجوی محل نصب برنامه‌ها و همچنین فایل‌های مرتبط (مانند فایل‌های باینری، سورس و داکیومنت‌ها) از این دستور استفاده می‌شود. مثال‌ها:

پیدا کردن مسیر برنامه bash:

whereis bash

جستجوی فایل‌های مرتبط با gcc:

whereis gcc

کاربرد دستور grep در دستورات جستجوی لینوکس

از این دستور برای جستجوی محتوای درون فایل‌ها یا خروجی دستورات استفاده می‌شود. این دستور به شما اجازه می‌دهد تا رشته‌های متنی خاصی را در فایل‌ها پیدا کنید. مثال:

جستجوی یک رشته خاص در یک فایل:

grep ‘search term’ /path/to/file

جستجوی یک رشته در کل فایل‌های یک دایرکتوری:

grep ‘search term’ /path/to/directory/*

جستجوی کلمات حساس به بزرگی و کوچکی حروف:

grep -i ‘Search term’ /path/to/file

نمایش شماره خطی که رشته در آن وجود دارد:

grep -n ‘search term’ /path/to/file

جستجو در خروجی یک دستور (پیدا کردن پروسس خاص):

ps aux | grep ‘bash’

ترکیب دستورات find + grep

از ترکیب این دو دستور برای جستجوی فایل‌ها بر اساس نام و سپس جستجوی محتوای آن‌ها میتوان استفاده کرد.
مثال:
پیدا کردن تمام فایل‌های .txt و جستجوی یک رشته درون آن‌ها

find /path/to/search -name “*.txt” -exec grep ‘search term’ {} \;

دستور awk

از این دستور برای جستجو و پردازش داده‌ها در فایل‌ها یا خروجی دستورات میتوان استفاده کرد.. معمولاً برای پردازش فایل‌های متنی ساختاریافته مثل CSV از این دستور استفاده می‌شود. مثال‌ها:
استخراج ستون دوم از یک فایل:

awk ‘{print $2}’ /path/to/file

جستجوی خطوطی که یک عبارت خاص دارند:

awk ‘/search term/’ /path/to/file

نمایش خطوطی که یک مقدار خاص در ستون اول دارند:

awk ‘$1 == “value”‘ /path/to/file

کاربرد دستور sed دستورات جستجوی لینوکس

این دستور برای جستجو و جایگزینی محتوای درون فایل‌ها به کار می‌رود. مثال‌ها:

جستجو و جایگزینی یک رشته در فایل:

sed ‘s/oldtext/newtext/g’ /path/to/file

حذف خطوطی که حاوی یک رشته خاص هستند:

sed ‘/search term/d’ /path/to/file

تفاوت‌ها و موارد استفاده هر کدام از دستورات جستجوی لینوکس

find: این دستور برای جستجوی فایل‌ها و دایرکتوری‌ها در سیستم فایل‌ها استفاده می‌شود. بسیار انعطاف‌پذیر است و می‌تواند بر اساس معیارهای مختلف جستجو کند.
locate: دستور locate برای جستجوی سریع فایل‌ها بر اساس نام، اما از دیتابیس استفاده می‌کند، بنابراین ممکن است اطلاعات قدیمی را نشان دهد.
which: از این دستور برای پیدا کردن مسیر اجرایی یک برنامه خاص میتوان استفاده کرد.
whereis: از این دستور برای پیدا کردن فایل‌های باینری، سورس و داکیومنت‌های مرتبط با یک برنامه میتوان استفاده کرد.
grep: از این دستور برای جستجوی محتوای فایل‌ها یا خروجی دستورات استفاده می‌شود. این دستور بیشتر مناسب برای جستجوی متون است.
awk: این دستور بیشتر برای پردازش و تجزیه فایل‌های متنی استفاده می‌شود.
sed: از این دستور برای ویرایش محتوای فایل‌ها بدون باز کردن آن‌ها در ویرایشگر متن استفاده می‌شود.

جمع‌بندی دستورات جستجوی لینوکس

اگر نیاز به جستجوی فایل دارید، از find و locate استفاده کنید.
اگر دنبال مسیر برنامه‌ها هستید، از which و whereis استفاده کنید.
برای دنبال جستجوی محتوای فایل‌ها هستید، از grep، awk و sed بسته به نیاز استفاده کنید.