سیستم عامللینوکس

پیدا کردن فایل در لینوکس با استفاده از دستور Find (کاملترین پست اینترنت)

دستور Find یکی از مهترین و کاربردی ترین دستورها در سیستم عامل لینوکس به حساب میاد. همونطور که از اسمش پیداست این دستور میتونه با توجه به متغیرو شرایط خاصی که براش تنظیم کردید فایل های شما رو پیدا کنه. شما با استفاده از دستور Find میتونید فایل ها رو بر اساس اجازه های دسترسی، کاربران، گروه ها، نوع فایل، تاریخ ایجاد فایل، سایز و هر متغیردیگه ای پیدا کنید. با من توی آموزش پیدا کردن فایل در لینوکس با استفاده از دستور Find همراه باشید.

خوشبختانه دستور Find به طور پیشفرض روی اکثر توزیع های لینوکس نصب هست و نیازی به نصب پکیج اضافی نداریم.

پیشنهاد میشه بخونید:

پیدا کردن فایل با استفاده از اسم در دایرکتوری فعلی

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

find . -name photo.png
پیدا کردن فایل در لینوکس با استفاده از دستور Find

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

find . -iname photo.png
پیدا کردن فایل در لینوکس با استفاده از دستور Find

اگر میخواهید جستجوی خودتونو توی دایرکتوری اصلی یا Root انجام بدید اول دستوری جستجویی که نوشتید باید Sudo اضافه کنید تا اجازه همه دسترسی ها به شما داده بشه و همچنین نماد / که به لینوکس دستور میده دایرکتوری ریشه رو مورد استفاده قرار بده. و در آخر هم این دستور رو برای چاپ کردن نتیجه مینویسیم -print بالفرض اگر دنبال فایلی به نام Gzip میگردید باید دستور زیر رو تایپ کنید:

sudo find / -name gzip -print
پیدا کردن فایل در لینوکس با استفاده از دستور Find

پیداکردن فایل ها در یک دایرکتوری خاص

برای پیداکردن فایل موردنظرتونو توی یک دایرکتوری خاص مثلا /home، باید کد زیر را اجرا کنید:

find /home -name filename.txt
پیدا کردن فایل در لینوکس با استفاده از دستور Find

برای پیدا کردن یک فایل با فرمت txt در دایرکتوری home کد زیر را اجرا کنید:

(بجای ستاره * اسم فایل رو وارد کنید)

find /home -name "*.txt"
پیدا کردن فایل در لینوکس با استفاده از دستور Find

برای پیداکردن فایلی با اسم فرضی test.txt که در دایرکتوری های داخلی مثل /home و بعد /opt هست کد زیر را اجرا کنید:

find /home /opt -name test.txt

برای پیداکردن فایل مخفی کد زیر را اجرا کنید:

find /home -name ".*"

برای پیدا کردن و حذف کردن همزمان یک فایل کد زیر را اجرا کنید:

find /home -type f -name test.txt -exec rm -f {}

برای پیدا کردن همه فایل های خالی در دایرکتوری /opt کد زیر را اجرا کنید:

find /opt -type f -empty

پیداکردن دایرکتوری با استفاده از نام آن

برای پیداکردن یک دایرکتوری با اسم فرضی testdir در دایرکتوری home کد زیر رو اجرا کنید:

find /home -type d -name testdir

برای پیداکردن همه دایرکتوری های خالی دایرکتوری home کد زیر رو اجرا کنید:

find /home -type d -empty

پیداکردن فایل با استفاده از دسترسی مشخص

دستوری find میتونه فایل ها رو بر اساس داشتن یک سری دسترسی های خاص با استفاده از perm جستجو کنه.

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

find /home -type f -perm 0777 -print

و همینطور برای پیدا کردن فایل هایی که اجازه دسترسی 777 رو ندارند کد زیر رو اجرا کنید:

find . -type f ! -perm 777

برای پیدا کردن همه فایل هایی که حالت read-only دارند کد زیر رو اجرا کنید:

find /home -perm /u=r

برای پیدا کردن همه فایل های قابل اجرا:

find /home -perm /a=x

برای پیدا کردن همه فایل هایی که روی حالت SUID تنظیم شدند:

find /home -perm /u=s

برای پیداکردن همه فایل هایی که دسترسی 777 رو دارند و تغییر دسترسی همه اونها به 700 کد زیر رو اجرا کنید:

find /home -type f -perm 0777 -print -exec chmod 700 {} ;

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

برای پیدا کردن همه فایل هایی که در 20 روز گذشته ایجاد شدند کد زیر رو اجرا کنید:

find /opt -mtime 20

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

find /opt -atime 20

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

find /opt -mtime +30 -mtime -50

پیداکردن دایرکتوری یا فایل بر اساس حجم آن

برای پیدا کردن همه فایل های 10 مگابایتی در دایرکتوری home کد زیر رو اجرا کنید:

find /home -size 10M

برای پیدا کردن فایل هایی که بالای 10 مگابایت و پایین 50 مگابایت حجم دارند هم کد زیر رو اجرا کنید:

find /home -size +10M -size -50M

برای پیدا کردن همه فایل ها با فرمت mp4 که بالای 10 مگابایت حجم دارند و حذف کردن اونها در یک دستور هم کد زیر رو اجرا کنید:

find /home -type f -name *.mp4 -size +10M -exec rm {} ;

همونطور که دیدید دستور find به طور باورنکردیی کاربریه و برای مدیریت سیستم و حذف فایل های اضافی در سیستم بسیار به کار میاد. امیدوارم این آموزش هم به کارتون اومده باشه اگر نظر خاصی دارید برام بنویسید . ممنون که تا آخر آموزش پیدا کردن فایل در لینوکس با استفاده از دستور Find همراه من بودید.

جدیدترین اخبار و آموزش فناوری رو در سایت موج آی تی دنبال کنید.

گرد آورنده
ترجمه اختصاصی موج آی تی
منبع
maketecheasier.com

محمد مهدی پیمبری

سلام محمد مهدی پیمبری مدیریت وبسایت موج آی‌تی هستم. دانشجوی لیسانس مهندسی کامپیوتر و همچنین دارای مدرک فنی و حرفه ای تعمیرات تخصصی موبایل ، از سال 1392 با علاقه زیاد به حوضه تکنولوژی و فناوری به دنیای نویسندگی و بلاگ نویسی وارد شدم و وبسایت موج آی تی را با هدف آموزش فناوری در سال 1399 راه اندازی کردم و علاقه شدیدی به یاد دادن و یاد گرفتن دارم.

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا