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

آیا می دانید چند فایل در یک نصب جدید لینوکس وجود دارد؟ اگر از PopOS استفاده می کنید! توزیع لینوکس به عنوان مثال، بیش از 31000 فایل وجود دارد. این قبل از شروع ایجاد هرگونه سند، ذخیره موسیقی، بارگیری PDF یا سازماندهی تصاویر است.

به همین دلیل، پیدا کردن فایل یا پوشه مناسب در لینوکس در صورت نیاز به یک چالش تبدیل می شود. در این مقاله، نحوه استفاده از دستور لینوکس FIND را یاد خواهید گرفت، و ما قصد داریم تمام مثال هایی را که می توانیم به شما ارائه دهیم.

Linux FIND Command Syntax

نحو به نحوه کنار هم قرار دادن کلمات یا دستورات اشاره دارد. همانطور که یک جمله معمولی می تواند فقط با به هم زدن کلمات بیهوده شود، دستورات نیز اگر در نحو مناسب استفاده نشوند ممکن است شکست بخورند.

پیدا کردن [مسیر] [شرایط] [عملکردها]

این به چه معناست:

find – ابزار Find را در لینوکس راه اندازی می کند

مسیر – کجا باید نگاه کرد

شرایط – آرگومان هایی که می خواهید در جستجو اعمال کنید

اقدامات – آنچه می خواهید با نتایج انجام دهید

یک مثال ساده با استفاده از هر سه به نظر می رسد:

یافتن . -name file-sample.rtf -print

همانطور که حدس زدید، نام فایل file-sample.rtf را پیدا خواهید کرد.

مسیر نقطه (. ) به find می گوید که در فهرست فعلی و هر دایرکتوری داخل آن جستجو کنید.

شرط -name به شما می‌گوید فایلی با آن نام خاص دریافت کنید.

عمل -print به FIND می گوید که نتایج را روی صفحه نمایش دهد.

پرینت و -print پیش‌فرض فرمان find هستند. بنابراین اگر از آنها استفاده نکنید باز هم همان کار را انجام می دهد. بنابراین، find -name file-sample.rtf همان نتایج را به شما خواهد داد.

Linux FIND In Other Directory

می‌توانید در دایرکتوری متفاوت از پوشه‌ای که در آن هستید جستجو کنید. کافیست بعد از FIND مسیر دایرکتوری را وارد کنید. اگر در ریشه هستید و می دانید که فایل در جایی در فهرست home/user قرار دارد، از این موارد استفاده می کنید:

یافتن home/user -name file-sample.rtf

این هنوز یک جستجوی بازگشتی است، بنابراین از هر فهرستی در زیر کاربر می‌گذرد..

Linux FIND چندین فهرست را جستجو کنید

اگر می‌خواهید در چندین فهرست به طور همزمان جستجو کنید، فقط آنها را در دستور فهرست کنید که با فاصله از هم جدا شده‌اند.

find /lib /var /bin -name file-sample.rtf

Linux FIND بدون بازگشت یا محدودیت بازگشت

اگر از دستور FIND بالا در سطح ریشه استفاده می‌کردید، همه دایرکتوری‌های سیستم را بررسی می‌کرد. بنابراین اگر می خواهید فقط به دایرکتوری فعلی بچسبید، از گزینه -maxdepth استفاده کنید. عدد بعد از -maxdepth به شما می گوید قبل از توقف تا چه حد عمیق بروید.

استفاده از -maxdepth 1 به معنای این فهرست است.

find -name file-sample.rtf -maxdepth 1

استفاده از -maxdepth 2 یا عدد بیشتر به این معنی است که به این سطوح عمیق تر بروید.

find -maxdepth 5 -name file-sample.rtf

Linux FIND Wildcard Example

دستور FIND از ستاره (* ) به عنوان علامت عام استفاده می کند. از آن برای هر بخشی از نام که مطمئن نیستید استفاده کنید. می توان آن را بیش از یک بار در نام استفاده کرد. بدون نوع فایل به عنوان بخشی از نام فایل، نتایج همچنین شامل دایرکتوری هایی می شوند که مطابقت دارند.

یافتن فایل خانه/کاربر -نام*نمونه*

Linux FIND با نوع مثال

فقط برای جستجوی یک فایل یا دایرکتوری، از گزینه -type و توصیفگر مناسب استفاده کنید. تعداد کمی وجود دارد، اما فایل ها و دایرکتوری ها رایج ترین هستند:

f – فایل

d – دایرکتوری

b - دستگاه را مسدود کنید

c – دستگاه کاراکتر

l – پیوند نمادین

s – سوکت

یافتن فایل home/user -name*sample* -type d

Linux FIND Case Insensitive Example

برخلاف ویندوز، لینوکس به بزرگ یا کوچک بودن یک حرف اهمیت می دهد. بنابراین اگر می‌خواهید برای File-Sample.rtf و file-sample.rtf جستجو کند، از گزینه -iname

استفاده کنید.

یافتن home/user -iname File-Sample.rtf

لینوکس FIND چندین فایل مثال

فرض کنید می‌خواستید نسخه‌های rtf. و .html یک فایل را پیدا کنید. این کار را می توان در یک دستور با استفاده از عملگر -o (یا) انجام داد. در برخی توزیع‌ها، ممکن است لازم باشد نام‌ها را در داخل پرانتز قرار دهید، مانند ( -name file-sample.rtf -o -name file-sample.html ) ..

یافتن home/user -name file-sample.rtf -o -name file-sample.html

Linux FIND فایل هایی که با نام مطابقت ندارند

شاید می‌دانید که نسخه html یک فایل وجود دارد، اما اگر فایل دیگری وجود داشته باشد، نه. می‌توانید با استفاده از -not گزینه، نسخه html را از جستجو خارج کنید.

یافتن home/user -name file-sample* -not -name *.html

Linux FIND Without Error Results

در مثال یافتن بدون بازگشت، توجه کنید که هر فهرستی را که نمی‌توانست در آن جستجو کند و نتیجه صحیح را فهرست می‌کند. آزاردهنده است. اجازه دهید آن را از نمایش همه آن دایرکتوری های "مجوز رد شده" متوقف کنیم. آن را با دستور ترمینال لینوکس دیگر ترکیب کنید، grep. همچنین می توانید از Find with grep برای فایل هایی با کلمات خاص در آنها پیدا کنید استفاده کنید.

find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v "مجوز رد شد"

بیایید 2>&1 را تجزیه کنیم.

2 – نشان دهنده stderrاست که مخفف خروجی خطاهای استاندارد است.

1 – نشان دهنده stdoutاست که مخفف خروجی استاندارد است

> – به معنای تغییر مسیر هر خروجی در سمت چپ آن به هر آنچه در سمت راست آن است.

& – به معنای کنار هم قرار دادن است.

بنابراین 2>&1 یعنی خطاهای استاندارد را بگیرید و آنها را تغییر مسیر دهید و سپس آنها را با خروجی استاندارد در یک خروجی قرار دهید.

اکنون اجازه دهید به | نگاه کنیم grep -v "مجوز رد شد" .

| (به نام لوله) – به لینوکس می‌گوید که نتایج هر چیزی را که در سمت چپ آن است به هر چیزی که در سمت راست آن است تغذیه کند. به فرمان grep داده می شود.

grep – یک ابزار جستجوی متنی است.

-v – به grep می‌گوید هر چیزی را که با متنی در سمت چپ -v مطابقت ندارد جستجو کند. در این مورد، به grep می‌گوید که فقط هر چیزی را بیابد که حاوی متن یا رشته «مجوز رد شد» باشد. بنابراین grep فقط نتایجی را که به دنبال آن هستید و هر خطایی که مطابق با «مجوز رد شده است» را به شما نشان می‌دهد.

Linux FIND by Permissions Example

.

برای استفاده از این خوب، باید مجوزهای لینوکس را یاد بگیرید را انجام دهید.

فایل های نمونه همه دارای مجوزهای 664 هستند، به جز یکی با مجوزهای 775. برای یافتن آن از گزینه -perm استفاده کنید.

یافتن اسناد/ -نام فایل-نمونه* -نوع f -perm 775

Linux FIND by Size Example

پیدا کردن فایل ها بر اساس اندازه برای پر کردن هارد دیسک شما توسط آن فایل های عظیم مفید است. از گزینه -size، اندازه مورد نظر و یکی از پسوندهای زیر استفاده کنید. اگر از هیچ پسوندی استفاده نمی‌شود، -size پیش‌فرض b است. برای پیدا کردن فایل‌های مساوی و بزرگتر از اندازه معین، علامت مثبت (+) را جلوی اندازه قرار دهید.

M – مگابایت

G – گیگابایت

k – کیلوبایت

b - بلوک‌ها (512 بایت - پیش‌فرض)

c – بایت

w – کلمات (دو بایت با هم)

find -size +500k

Linux FIND توسط مالک

دو راه برای یافتن فایل‌ها توسط مالک وجود دارد. یکی با نام کاربری مالک و دیگری توسط گروه کاربر است. برای یافتن بر اساس نام کاربری، از گزینه -user و به دنبال آن نام کاربری استفاده کنید. برای یافتن بر اساس گروه کاربر، از -group به دنبال نام گروه استفاده کنید..

find -user name group یا find -user username

یافتن فایل‌های لینوکس بر اساس آخرین نمونه اصلاح شده

برای یافتن فایل‌هایی که در X روز گذشته اصلاح یا ویرایش شده‌اند، از -mtime و سپس یک عدد استفاده کنید. با قرار دادن علامت منفی ( ) در جلوی عدد، هر چیزی که در چند روز قبل از آن تغییر کرده است، پیدا می کند. علامت مثبت (+ ) به این معنی است که چند روز قبل از آن.

find -name "file-sample*" -mtime +5 (بیشتر از 5 روز پیش)

find -name "file-sample*" -mtime -5 (کمتر از 5 روز پیش)

برای یافتن آخرین تغییر در دقیقه، از گزینه -mmin و سپس تعداد دقیقه استفاده کنید. از + و – مانند بالا استفاده کنید.

find -name "file-sample*" -mmin -5

find -name "file-sample*" -mmin +5

یافتن فایل‌های لینوکس بر اساس نمونه زمان آخرین دسترسی

.

گزینه ای که برای یافتن فایل ها بر اساس آخرین زمان باز شدن آنها استفاده می شود، -atime برای روزها و -amin برای دقیقه است. آن را با تعداد روزها یا دقیقه ها دنبال کنید تا به عقب برگردید و از علامت + و – به عنوان بزرگتر و کمتر از استفاده کنید.

find -name "file-sample*" -atime -5

find -name “file-sample* -amin -5

FIND را با سایر دستورات لینوکس ترکیب کنید

یک مثال بالا از استفاده از find با دستور grep وجود دارد، و می توانید آن را با بسیاری دیگر استفاده کنید. می بینید که استفاده از دستورات find و دیگر می تواند بسیار قدرتمند و صرفه جویی زیادی در زمان باشد. تصور کنید که باید دسته ای از یک نوع فایل خاص را حذف کنید. به جای جستجوی اطراف در کاوشگر فایل، فقط دستور درست را ایجاد کنید، و این کار در چند ثانیه انجام می شود. اکنون چگونه از دستور find استفاده می کنید؟

.

پست های مرتبط:


18.01.2022