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

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

  • تاریخ ارسال: 1403/03/03
  • تعداد نمایش: 1681
  • گروه:

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

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

پارامترهای این دستور به شرح زیر است:

 

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

پارامتر –maxdepth

با این پارامتر می توانیم تعداد زیرشاخه مسیر مورد نظرمان را جستجو کند را تعیین می کنیم:

$find / maxdepth 5 –name “*.jpg”

پارامتر -type

با این پارامتر می توان نوع فایل یا دایرکتوری را مشخص کرد مثلا

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

برای دایرکتوری از d استفاده می کنیم و برای لینک از l

مثلا:

$ find –type d

$ find –type f

$ find –type l

پارامتر –name

از این پارامتر هم برای نام مورد نظرمان استفاده می کنیم ، می توانیم بصورت الگو نام را بکار ببریم مثلا همه فایل هایی که با test شروع می شوند یا همه فایل های با پسوند jpg

$ find –type f –name “test*”

$ find –type f –name “*.jpg”

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

برای این مورد باید از پارامتر –size استفاده کنیم ، مثلا می خواهیم فایل هایی با حجم بیشتر از 2 گیگ را برای ما پیدا کن:

$ find –size +2G

جستجو براساس زمان

میخواهیم فایل هایی که در دقیقا در 7 روز گذشته ساخته شده اند را جستجو کند:

# find / -name “*.jpg”–mtime 7

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

# find / -name “test*.jpg” –mtime +7

فایل هایی که کم تر از 7 روز گذشته از زمان ساختشان گذشته است:

$ find / -name “*.png” –mtime -7

جستجو براساس زمان خاص

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

$find . –name “ali*.txt”  -type f -newermt 2023-07-6

حالا می خواهیم فایل هایی که قبل از 2023-07-06 ساخته شده اند را پیدا کند:

$ find . –name “al*.png” –type f ! newermt 2023-07-06

اجرای دستور روی نتایج find

مثلا میخواهیم پرمیشن تمامی فایل های نشان داده شده  find را تغییر دهیم:

مثال:

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

$ find –name “alborz*.txt” –exec chmod 777 ‘{}’ \;

یا مثلا فایل های بزرگتر از 50 مگ و زمان ایجادشان 150 روز به بعد باشد و پسوند wav را حذف کند:

$ find . –type f –name “*.wav” –mtime +150 –delete