۳۵ نمونه عملی از دستورات یافتن (Find) در لینوکس

دستور جستجو (Find) یکی از مهمترین و پر استفاده ترین دستورات در لینوکس میباشد. یکی از قابلیت های کلیدی Find یافتن فایل ها و پوشه  ها تحت شرایطی که شما تعیین میکنید (فیلتر جستجو) میباشد.

انعطاف پذیری Find بقدریست که میتواند در شرایط متفاوت مانند جستجو بر اساس دسترسی(permissions) ٬ کاربر (users)٬ گروه (groups)٬ نوع فایل (file type) ٬ تاریخ ٬ اندازه و سایر شاخص ها برایتان جستجو را انجام دهد.

طی این مقاله ٬ انواع روش های جستجو در لینوکس و موارد مصرف آنها در ۳۵ متد پر کاربرد و رایج را برایتان تشریح خواهیم کرد. این آموزش به ۵ قسمت از basic تا پیشرفته تقسیم بندی شده است.

  • بخش اول: دستورات پایه Find برای جستجوی فایل ها بر اساس نام
  • بخش دوم: جستجوی فایل ها بر اساس دسترسی آنها (Permissions)
  • بخش سوم: جستجوی فایل بر اساس owner و گروه
  • بخش چهارم: جستجوی فایل ها و پوشه ها بر اساس تاریخ و زمان
  • بخش پنجم: جستجوی فایل ها و پوشه ها بر اساس اندازه(Size)

 

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

 

۱- جستجوی فایل بر اساس نام در مسیری که قرار دارید

جستجوی تمامی فایل هایی که نام آنها tecmint.txt میباشد در همان پوشه ای که هم اکنون حاضرید:

# find . -name tecmint.txt

./tecmint.txt

۲- یافتن فایل در مسیر خاص برای مثال home/

یافتن تمامی فایل هایی که در مسیر home/ نام آنها tecmint.txt میباشد:

# find /home -name tecmint.txt

/home/tecmint.txt

۳- جستجوی فایل با استفاده از نام و نادیده گرفتن حروف بزرگ کوچک 

یافتن تمامی فایل های موجود در مسیر home/ بر اساس نام tecmint.txt بدون در نظر گرفتن بزرگ – کوچک بودن حروف

# find /home -iname tecmint.txt

./tecmint.txt
./Tecmint.txt

۴- یافتن پوشه ها بر اساس نام

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

# find / -type d -name Tecmint

/Tecmint

۵- یافتن فایل php بر اساس نام

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

# find . -type f -name tecmint.php

./tecmint.php

۶- یافتن تمام فایل های php در پوشه

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

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

./tecmint.php
./login.php
./index.php

 

بخش دوم: جستجوی فایل ها بر اساس دسترسی آنها (Permissions)

۷- جستجوی فایل ها با پرمیشن آنها ۷۷۷ 

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

# find . -type f -perm 0777 -print

۸- جستجوی فایل های بدون دسترسی ۷۷۷

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

# find / -type f ! -perm 777

۹- جستجوی فایل های SGID با سطح دسترسی ۶۴۴

یافتن تمام فایل های SGID  bit که سطح دسترسی آنها ۶۴۴ میباشد.

# find / -perm 2644

۱۰- جستجوی فایل های Sticky Bit با سطح دسترسی ۵۵۱

یافتن تمام فایل های Sticky Bit که دسترسی آنها ۵۵۱ میباشد.

# find / -perm 1551

۱۱- جستجوی فایل SUID

یافتن تمام فایل های SUID

# find / -perm /u=s

۱۲- جستجوی فایل SGID

یافتن تمام فایل های SGID

# find / -perm /g+s

۱۳- جستجوی فایل های Read Only

یافتن تمام فایل هایی که سطح دسترسی آنها خواندن(Read Only) میباشد.

# find / -perm /u=r

۱۴- جستجوی فایل های Executable

یافتن تمام فایل های اجرایی

# find / -perm /a=x

۱۵- جستجوی فایل های با سطح دسترسی ۷۷۷ میباشد و تغییر آن به ۶۴۴ 

یافتن تمام فایل هایی که سطح دسترسی آنها ۷۷۷ میباشد و تغییر دسترسی آنها به ۶۴۴ با استفاده از دستور chmod

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

۱۶- جستجوی پوشه های با سطح دسترسی۷۷۷ میباشد و تغییر آن به ۶۴۴ 

یافتن تمام پوشه هایی که سطح دسترسی آنها ۷۷۷ میباشد و تغییر دسترسی آنها به ۶۴۴ با استفاده از دستور chmod

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

۱۷- جستجو و حذف یک فایل خاص

یافتن فایلی بنام tecmint.txt و حذف آن

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

۱۸- جستجو و حذف همزمان چند فایل

یافتن و حذف همزمان چندین فایل مانند mp3. یا txt.

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

OR

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

۱۹- جستجوی تمام فایل های خالی

یافتن تمام فایل های خالی در مسیری خاص

# find /tmp -type f -empty

 

۲۰- جستجوی تمام پوشه های خالی

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

# find /tmp -type d -empty

۲۱- جستجوی تمام فایل های مخفی

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

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

بخش سوم: جستجوی فایل بر اساس owner و گروه

۲۲- جستجوی یک فایل بر پایه نام کاربری خاص

یافتن یک یا تمام فایل های مربوط به یوزر root در مسیر root/ با نام  tecmint.txt

# find / -user root -name tecmint.txt

۲۳- جستجوی تمام فایلها بر پایه نام کاربری خاص

یافتن تمام فایل های مربوط به یوزر Tecmint در مسیر home/

# find /home -user tecmint

۲۴- جستجوی تمام فایل های یک گروه خاص

یافتن تمام فایل هایی که در زیر گروه Developer در مسیر home/ قرار دارند:

# find /home -group developer

۲۵- جستجوی یک فایل خاص در یوزر خاص

یافتن تمام فایل های txt. متعلق به یوزر Tecmint در مسیر home/

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

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

۲۶- یافتن فایل هایی که در ۵۰ روز اخیر ویرایش شده اند

یافتن فایل هایی که در ۵۰ روز اخیر ویرایش شده اند.

# find / -mtime 50

۲۷- یافتن فایل هایی که در ۵۰ روز اخیر مشاهده شدند

یافتن فایل هایی که در ۵۰ روز اخیر مشاهده شدند

# find / -atime 50

۲۸- یافتن فایل هایی که از ۵۰ تا ۱۰۰ روز پیش ویرایش شده اند.

یافتن فایل هایی که بیشتر از ۵۰ روز پیش و کمتر از ۱۰۰ روز پیش ویرایش شده اند. ( فاصله ی بین ۵۰ الی ۱۰۰ مد نظر است- از ۱ تا ۵۰ نادیده گرفته میشود)

# find / -mtime +50 –mtime -100

۲۹- فایل های تغییر داده شده در ۱ ساعت اخیر

یافتن تمام فایل هایی که در یک ساعت گذشته تغییر داده شده اند

# find / -cmin -60

۳۰- فایل های ویرایش شده در ۱ ساعت اخیر

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

# find / -mmin -60

۳۱- فایل هایی که طی ۱ ساعت اخیر از انها استفاده شد

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

# find / -amin -60

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

۳۲- جستجوی فایل های ۵۰ مگابایت

یافتن تمام فایل های ۵۰ مگابایتی

# find / -size 50M

۳۳- جست و جوی فایل های ۵۰ – ۱۰۰ مگابایتی

یافتن تمام فایل هایی که حجم آنها ۵۰ – ۱۰۰ مگابایت میباشد.

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

۳۴- جست و جو و حذف فایل های ۱۰۰ مگابایتی

یافتن و حذف تمام فایل هایی که حجم آنها ۱۰۰ مگابایت میباشد.

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

۳۵- جست و جو و حذف فایلی خاص

یافتن تمام فایل های mp3. که حجم انها بیشتر از ۱۰ مگابایت میباشد  و حذف آنها

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