جستجوی فایل ها در لینوکس با دستور Find

دسته بندی: آموزش, لینوکس
جستجوی فایل ها در لینوکس با دستور Find

در این مطلب قصد داریم نحوه جستجو در ترمینال لینوکس را براساس معیار های مختلف مثل حجم، نام ، پسوند، سطح دسترسی، تاریخ و … را تشریح کنیم، دستور find با سوئیچ های مختلفی که دارد امکان سرچ در لینوکس را به سادگی فراهم می کند.

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

جستجوی فایل ها بر اساس نام

جهت سرچ بر اساس نام نیاز است از دستور find با سوئیچ -name استفاده کنید، البته اگر می خواهید بحروف بزرگ و کوچک حساس نباشد بجای -name  از -iname استفاده کنید.

find مسیر  -name   نام فایل

بطور مثال اگر می خواهید فایلی بنام test.jpg را در دایرکتوری جاری سرچ کنید. دستور بصورت زیر می شود.

find  .  -name test.jpg

جهت سرچ کلیه فایل ها در دایرکتوری /home و با نام test.txt لازم است دستور زیر را اجرا کنید :

find  /home  -name test.txt

به عنوان مثال در تصویر زیر فایل هایی با نام passwd در دایرکتوری / سرچ شده و خروجی بصورت زیر مشاهده شده است:

جستجوی پوشه ها بر اساس نام

ساختار دستور بصورت زیر می باشد:

find    مسیر -type d -name نام پوشه مورد نظر

بعنوان مثال برای جستجو تمام پوشه های بنام backup در /home دستور به صورت زیر تغییر می کند:

find  /home –type d –name backup

یا بطور مثال برای پیدا کردن فایل های مخفی در /home/aban/public_html/ از دستور زیر استفاده کنید:

find /home/aban/public_html/  -type f  -name  ".*"

بعنوان مثال در تصویر زیر پوشه هایی با نام  public_html در دایرکتوری / سرچ شده و خروجی بصورت زیر مشاهده شده است:

حتما بخوانید:  پولسازترین مهارت ها در رایانش ابری (15 مهارت کاربردی و مهم)

 

 

جستجوی فایل ها با پسوند خاص

ساختار دستور بصورت زیر می باشد:

find  مسیر  -type f  -name  "*. پسوند”

بطور مثال جهت سرچ فایل هایی با پسوند .php در مسیر جاری دستور به صورت زیر تغییر می یابد:

"find . -type f -name "*.php

 

جستجوی فایل ها با سطح دسترسی خاص

ساختار دستور بصورت زیر می باشد:

find   مسیر  -type  f -perm سطح دسترسی  -print

بطور مثال برای پیدا کردن کلیه فایل ها با سطح دسترسی 777 از دستور زیر می توانید استفاده کنید.

find /home -type f -perm 0777 –print

 

 

جستجوی دایرکتوری ها با سطح دسترسی خاص

ساختار دستور بصورت زیر می باشد، بصورت کلی type  با سوئیچ f برای فایل ها با سوئیچ d برای دایرکتوری/پوشه ها استفاده می شود.

find   مسیر  -type  d -perm سطح دسترسی  -print

بطور مثال  برای پیدا کردن کلیه پوشه ها با سطح دسترسی 777 از دستور زیر می توانید استفاده کنید.

find /home -type d -perm 777 –print

با استفاده از !  در دستور FIND می توانید عملیات جستجوی معکوس را انجام دهید.

بعنوان مثال جهت جستجوی تمام فایل ها موجود در /home که پرمیژن آن 777 نیست از دستور زیر استفاده کنید:

find /home -type f ! -perm 777

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

جهت جستجوی فایل های خالی از دستور با ساختار زیر استفاده کنید:

find مسیر -type f -empty

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

find مسیر -type d -empty

 

 

جستجوی فایل های یک یوزر خاص

جهت جستجوی فایل های یک یوزر خاص از دستور با ساختار زیر استفاده کنید:

find مسیر  -user نام یوزر

بطور مثال برای جستجو تمام فایل هایی که متعاق به یوزر aban و در مسیر /home/admin است، دستور بصورت زیر می باشد:

find /home/admin -user root

 

حتما بخوانید:  گواهی SSL چیست؟ انواع SSL کدامند؟

جستجوی فایل ها بر اساس حجم

جهت جستجوی فایل ها بر اساس حجم از دستور با ساختار زیر استفاده کنید:

find  مسیر  -size حجم

بعنوان مثال جهت جستجوی فایل ها با حجم بیشتر از 50 و کمتر از 100  مگابایت دستور به صورت زیر تغییر می کند:

find / -size +50M -size -100M

بعنوان مثال در تصویر زیر فایل های لاگ موجود در سرور با حجم بیشتر از 10 مگابایت سرچ شده و در خروجی نمایش داده می شود:

 

 

کاربرد -exec در دستور find

با -exec شما می توانید مشخص کنید چه عملیاتی بر روی خروجی دستور اجرا شود.

بطور مثال سطح دسترسی کلیه فایل ها  موجود در یک مسیر را از 777 به  644 تغییر دهید.

find   مسیر  -type f -perm 777 -print -exec chmod 644 {} \;

کلیه فایل های .mp3 در مسیر جاری را حذف نمایید.

find . -type f -name "*.mp3" -exec rm -f {} \;

لیست کلیه فایل های لاگ با حجم بیشتر از 100 مگ را مشاهده کنید.

find /var/log -type f -size +100M -exec ls -lh {} \;

 

جستجوی فایل ها بر اساس ساعت و تاریخ

 جستجو کردن فایل هایی  که در روزهای قبل ویرایش شده اند.

find   مسیر -mtime  تعداد روز

بعنوان مثال جهت جستجوی فایل هایی که در 50 روز پیش در مسیر / تغییر کرده اند از دستور زیر استفاده نمایید.

 find / -mtime 50

جستجوی کردن تمام فایل هایی که در  مسیر / در 50 روز پیش به آنها دسترسی پیدا شده است، مشاهده شده اند.

find / -atime 50

جستجوی تمام فایل هایی که در یک ساعت اخیر تغییر داده شده اند.

find / -cmin -60

جستجوی تمام فایل هایی که در یک ساعت اخیر ویرایش شده اند.

find / -mmin -60

newerXy : این گزینه در صورتی قابل استفاده است که timestamp X فایلی که در جستجوی آن هستیم از timestamp Y آن جدیدتر باشد. بجای X و Y میتوان هر یک از حروف زیر را استفاده کرد :

حتما بخوانید:  آموزش ورود دو مرحله ای به کنترل‌پنل پلسک

a: این سوئیچ زمان دسترسی فایل میباشد.

B :این آپشن زمان ایجاد فایل میباشد.

m: زمان تغییر فایل

t: با استفاده از این سوئیچ میتوانید مستقیما در دستور یک تاریخ را درج کنید.

بعنوان مثال در دستور زیر تنها فایل هایی که در تاریخ 2016-12-06 در مسیر جاری تغییر داده شده اند جستجو میشوند:

"find . -newermt "2016-12-06

 

maxdepth

با این آپشن میتوانید حداکثر عمق جستجو را با عنوان یک level مشخص کنید، که تا چندین level از subdirectory های موجود از دایرکتوری جاری و یا دایرکتوری مورد جستجوی بررسی و search را انجام دهد.

جهت درک بهتر تصویر زیر را مشاهده کنید:

find / -maxdepth 3 -name passwd

جمع‌بندی

در این مقاله با دستور Find در لینوکس آشنا شدیم؛ اگر علاقه‌مند به مباحث لینوکس هستید، پیشنهاد می‌کنم مقاله 8 دستور خطرناک که نباید در خط فرمان لینوکس تایپ کنید را بخوانید و اطلاعاتتان را بالاتر ببرید.

آماده شنیدن نظرات و پیشنهادات شما هستیم.

5/5 - (1 امتیاز)

مایلید هر دو هفته یک ایمیل مفید دریافت کنید؟

ما را در شبکه‌های اجتماعی دنبال کنید

همچنین شاید دوست داشته باشید!

آموزش نصب و پیکربندی WAF

آموزش نصب و پیکربندی WAF

0
Firewall به اختصار WAF، سرویس یا ماژولی برای افزایش امنیت وب‌سایت است که وظیفه کنترل ترافیک ورودی به وب‌سایت را بر عهده می‌گیرد. این نرم‌افزار…

نظرات کاربران

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
شما برای ادامه باید با شرایط موافقت کنید

فهرست