مرکز آموزش تهران هاست

حرفه ای تر شوید

یکی از دستورات مهم و کاربردی لینوکس دستور find در لینوکس است. کاربرد آن پیدا کردن لیستی از فایل ها و دایرکتوری ها ( پوشه ها ) بر اساس شرایط خاصی که شما مشخص می کنید می باشد.

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

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

در این مقاله ما 35 مثال دستور find در لینوکس را در 5 دسته ارسال کرده ایم

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

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

دسته سوم : جستجو فایل ها بر اساس Owner ها و Group ها ( صاحبان فایل ها و گروه ها )

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

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

 

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

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

جستجو در تمام فایل های دایرکتوری جاری که نام آنها tehranhost.txt باشد.

در هر کادر خط اول دستور و خط دوم خروجی دستور می باشد

# find . -name tehranhost.txt

./tehranhost.txt

2.پیدا کردن فایل ها در پوشه home

جستجو در تمام فایل های موجود در پوشه home که نام آنها tehranhost.txt باشد.

# find /home -name tehranhost.txt

/home/tehranhost.txt

3.پیدا کردن فایل ها بدون در نظر گرفتن بزرگی و کوچکی حروف آنها

یافتن تمام فایل هایی که نام های آنها tehranhost.txt که شامل حروف های بزرگ و کوچک شود.

# find /home -iname tehranhost.txt

./tehranhost.txt
./Tehranhost.txt

4.پیدا کردن پوشه ها با توجه به نام آنها

پیدا کردن تمام دایرکتوری هایی که نام آنها Tehranhost باشد از مسیر /

# find / -type d -name Tehranhost

/Tehranhost

5.پیدا کردن فایل های php در دایرکتوری جاری بر اساس نام فایل

پیدا کردن تمام فایل های php که در پوشه جاری باشد و نام آنها tehranhost.php باشد.

# find . -type f -name tehranhost.php

./tehranhost.php

 

6.پیدا کردن تمام فایل های php در دایرکتوری جاری

پیدا کردن تمام فایل هایی که پسوند آنها php  باشد در دایرکتوری جاری :

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

./tehranhost.php
./login.php
./index.php

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

 

7.پیدا کردن فایل هایی که سطح دسترسی آن ها 777 باشد

یافتن تمام فایل هایی که سطح دسترسی آنها 777 باشد.

# find . -type f -perm 0777 -print

8.پیدا کردن فایل هایی که سطح دسترسی آن ها 777 نباشد

یافتن تمام فایل هایی که سطح دسترسی آنها 777 نباشد.

# find / -type f ! -perm 777

9.پیدا کردن فایل های SGID با سطح دسترسی 644

یافتن فایل های sgid که سطح دسترسی آنها 644 تنظیم شده است

# find / -perm 2644

 

10.پیدا کردن فایل های Sticky Bit با سطح دسترسی 551

یافتن تمام فایل هایی که به صورت Sticky Bit تنظیم شده اند و سطح دسترسی آنها 551 هست

# find / -perm 1551

11.پیدا کردن فایل های SUID

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

# find / -perm /u=s

12.پیدا کردن فایل های SGID

یافتن فایل هایی که به صورت SGID تنظیم شده اند

# find / -perm /g+s

13.پیدا کردن فایل های Read Only (فقط خواندنی)

پیدا کردن تمام فایل های Read Only

# find / -perm /u=r

14.پیدا کردن فایل های Executable ( قابل اجرا )

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

# find / -perm /a=x

15.پیدا کردن فایل هایی که سطح دسترسی آنها 777 است و تغییر آنها به سطح دسترسی 644

پیدا کردن تمام فایل هایی که سطح دسترسی آنها 777 است و تغییر سطح دسترسی آنها به 644

# find / -type f -perm 0777 -print -exec chmod 644 {} \;

16.پیدا کردن فایل هایی که سطح دسترسی آنها 666 است و تغییر آنها به سطح دسترسی 644

پیدا کردن تمام فایل هایی که سطح دسترسی آنها 666 است و تغییر سطح دسترسی آنها به 644

# find / -type f -perm 0666 -print -exec chmod 644 {} \;

17.پیدا کردن تمام پوشه هایی که سطح دسترسی آنها 777 است و تغییر آنها به 755

پیدا کردن تمام دایرکتوری هایی که سطح دسترسی آنها 777 است و تغییر سطح دسترسی آنها به 755

# find / -type d -perm 777 -print -exec chmod 755 {} \;

18.پیدا کردن و حذف کردن یک فایل توسط find

برای پیدا کردن یک فایل مانند tehranhost.txt و حذف خودکار آن

# find . -type f -name "tehranhost.txt" -exec rm -f {} \;

19.پیدا کردن و حذف کردن دسته جمعی فایل ها توسط find

برای پیدا کردن و حذف کردن دسته جمعی فایل ها مانند پسوند های txt یا mp3

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

OR

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

20.پیدا کردن تمام فایل خالی

پیدا کردن تمام فایل های خالی در مسیر خاص توسط find

# find /tmp -type f -empty

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

پیدا کردن تمام پوشه های خالی در مسیر خاص

# find /tmp -type d -empty

22.پیدا کردن تمام فایل های مخفی

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

# find /tmp -type f -name ".*"

 

دسته سوم : جستجو فایل ها بر اساس Owner ها و Group ها ( صاحبان فایل ها و گروه ها )

23.پیدا کردن یک فایل بر اساس یک owner ( صاحب )

برای پیدا کردن همه یا تنها یک فایل با اسم خاص در مسیر / که صاحب آنها root است

# find / -user root -name tehranhost.txt

24.پیدا کردن تمام فایل هایی که صاحب (owner) آنها یک کاربر است

پیدا کردن تمام فایل هایی که صاحب آن tehranhost و در مسیر home باشند

# find /home -user tehranhost

25.پیدا کردن فایل ها بر اساس Group ( گروه) آنها

پیدا کردن تمام فایل های تحت Group (گروه) Developer  و در مسیر home

# find /home -group developer

26.پیدا کردن کردن یک فایل خاص تحت یک owner

یافتن یک فایل خاص که owner ها کاربر tehranhost  باشد

# find /home -user tehranhost -iname "*.txt"

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

27.پیدا کردن فایل های که در 50 روز اخیر اصلاح شده ( تغییر کرده modify شده)

پیدا کردن تمام فایل هایی که modified time آنها برای 50 روز اخیر باشد

# find / -mtime 50

28.پیدا کردن فایل هایی که در 50 روز اخیر بازدید شده اند. ( به فایل دسترسی پیدا شده است – Accessed Files)

پیدا کردن تمام فایل هایی که در 50 روز اخیر مشاهده شده اند توسط دستور find در لینوکس

# find / -atime 50

29.پیدا کردن فایل هایی که بین 50 تا 100 روز modify شده اند.

یافتن تمام فایل هایی که بیشتر از 50 روز و کمتر از 100 روز modify شده اند

# find / -mtime +50 –mtime -100

30.پیدا کردن فایل تغییر کرده در یک ساعت اخیر (Changed Files )

 

یافتن تمام فایل هایی که در یک ساعت اخیر تغییر کرده اند

# find / -cmin -60

31.پیدا کردن فایل های modify شده در یک ساعت اخیر

پیدا کردن تمام فایل هایی که در یک ساعت اخیر modify شده اند

# find / -mmin -60

32.پیدا کردن فایل های مشاهده شده در یک ساعت اخیر (Accessed Files)

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

# find / -amin -60

دسته چهارم : جستجو فایل ها و پوشه ها بر اساس حجم آنها

33.پیدا کردن فایل های 50 مگابایتی

پیدا کردن تمام فایل هایی که حجم آن ها 50 مگابایت است.

# find / -size 50M

34.پیدا کردن فایل های 50 تا 100 مگابایت

پیدا کردن تمام فایل هایی که حجم آنها بین 50 تا 100 مگابایت می باشد

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

35.پیدا کردن و حذف کردن خودکار فایل های 100 مگابایتی

یافتن تمام فایل هایی که حجم آنها 100 مگابایت است و حذف خودکار این فایل ها توسط دستور find

# find / -size +100M -exec rm -rf {} \;

36.یاقتن فایل های خاص و حذف آنها ( فایل های Specific)

پیدا کردن تمام فایل های با پسوند mp3 که حجم آنها بیشتر از 10 مگابایت باشد و حذف خودکار آنها

# find / -type f -name *.mp3 -size +10M -exec rm {} \;

منبع : tecmint.com

2 دیدگاه

  1. Aren

    عالی بود. ممنون

  2. حمید

    بعضی از موارد اشتباه می باشد
    مورد 13 – خاصیت فقط خواندنی اشتباه می باشد. این دستور تمامی فایلهایی که قابلیت خواندن را دارند پیدا می کند. فقط خواندنی به فایلی گفته می شود که قابلیت نوشتن نداشته باشد.
    مورد 14 – یافتن تمامی فایهای اجرایی اشتباه می باشد. این دستور اگر فایلی صرفا برای کاربر یا گروه یا دیگران قابل اجرا باشد را پیدا می کند و لزومی به قابل اجرا بودن برای همه نیست.
    مورد 27 – این دستور فایهایی که دقیقا 50 روز از تغییر محتوای آنها گذشته باشد را پیدا میکند. عنوان 50 روز اخیر اشتباه می باشد.
    مورد 28 – شبیه به مورد 27
    مورد 30 – این دستور فایلهایی که وضعیت آنها ( شماره inode ، سطح دسترسی و … ) تغییر کرده باشد را پیدا میکند.
    مورد 35 – این دستور فایلهای 100 مگابایتی و بیشتر را پیدا و حذف می کند.

    با سپاس

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

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