
دستور Find
یکی از مهترین و کاربردی ترین دستورها در سیستم عامل لینوکس به حساب میاد. همونطور که از اسمش پیداست این دستور میتونه با توجه به متغیرو شرایط خاصی که براش تنظیم کردید فایل های شما رو پیدا کنه. شما با استفاده از دستور Find
میتونید فایل ها رو بر اساس اجازه های دسترسی، کاربران، گروه ها، نوع فایل، تاریخ ایجاد فایل، سایز و هر متغیردیگه ای پیدا کنید. با من توی آموزش پیدا کردن فایل در لینوکس با استفاده از دستور Find همراه باشید.
خوشبختانه دستور Find
به طور پیشفرض روی اکثر توزیع های لینوکس نصب هست و نیازی به نصب پکیج اضافی نداریم.
پیشنهاد میشه بخونید:
پیدا کردن فایل با استفاده از اسم در دایرکتوری فعلی
رایج ترین روش جستجوی فایل ها استفاده از اسم اونهاست. برای پیدا کردن فایل با استفاده از اسم در دایرکتوری فعلی کد زیر رو اجرا کنید:
find . -name photo.png

اگر میخواهید فایل رو هم با حروف کوچک اسم هم با حروف بزرگ اسم سرچ کنید باید با استفاده از دستور Find کد زیر رو اجرا کنید:
find . -iname photo.png

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

پیداکردن فایل ها در یک دایرکتوری خاص
برای پیداکردن فایل موردنظرتونو توی یک دایرکتوری خاص مثلا /home
، باید کد زیر را اجرا کنید:
find /home -name filename.txt

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

برای پیداکردن فایلی با اسم فرضی 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 همراه من بودید.
جدیدترین اخبار و آموزش فناوری رو در سایت موج آی تی دنبال کنید.