روش های متفاوتی برای یافتن فایل های شما در گنو/لینوکس موجود است و استفاده از find تنها یکی از روش های موجود میباشد .

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

  • سرعت بسیار بالا در جستجو
  • استفاده بسیار ناچیز از منابع سیستم
  • دارا بودن پارامتر هایی فوق العاده برای انواع جستجو

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

در مثال زیر ابزار find دایرکتوری خانه ما را برای یافتن فایل Scan.sh جستجو خواهد کرد ، توجه نمایید که در این مثال جستجوی ما به حروف بزرگ و کوچک حساس میباشد .

find ~/ -name 'Scan.sh'

برای یافتن فایل ها بدون در نظر گرفتن کوچکی یا بزرگی حروف میتوان ابزار find را بدین صورت استفاده نمود :

find ~/ -iname 'scan.sh'

همچنین استفاده از کارکتر های ویژه Wildcard را فراموش نکنید :

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

find /home/milad -name '*sys'

برای یافتن فایلی که نامش با sys شروع شده و فرمتی دو کارکتری دارد ( بدون حساسیت ) :

find ~/ -iname 'sys*.??'

size : با استفاده از پارامتر size میتوانید میزان حجم فایل مورد نظر خود را مشخص نمایید و جستجوی بی نقص تری داشته باشید .

find /path/to/multimedia -name '*.mp3' -size -7000k

همچنین میتوانید از M برای مگابایت و G برای گیگابایت استفاده نمایید .

با دستور فوق find در شاخه مورد نظر به دنبال تمام فایل های mp3 که حجمی کمتر از 7000 کیلوبایت دارند میگردد .

! (‌ Not ) : با استفاده از ! میتوانید یکی از شرایط را منفی نمایید به مثال زیر توجه نمایید :

find ~/web/ ! '*.html*

در مثال فوق find تمام فایل های مسیر مورد نظرمان به جز فایل هایی که دارای پسوند html میباشند را برایمان پیدا خواهد کرد .

or : با استفاده از or میتوانیم جستجو را وابسته به یکی از چند شروط نماییم ، برای مثال جستجوی زیر فایل هایی که فرمت mkv و یا حجمی بیشتر از 150000 کیلوبایت دارند را پیدا میکند :

find ~/multimedia -name '*.mkv' or -size +150000

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

find / -mount -name '*.mkv'

نتیجه فوق : جستجوی تمام فایلهای mkv در شاخه root ( پارتیشن های mount شده جستجو نمیشوند )

find /home/milad -amin -5 -name '*.mkv'
find /home/milad -mmin -5 -name '*.mkv'

در دو مثال فوق به دنبال فایل های mkv میباشیم با این تفاوت که در مثال اول فایل مورد نظرمان در 5 دقیقه اخیر مورد دسترسی و در مورد دوم فایل در 5 دقیقه اخیر مورد ویرایش قرار گرفته است .

همینطور میتوانید از user برای جستجو بر اساس صاحب فایل و group بر اساس گروهی که فایل متعلق به آنس است استفاده نمایید .

find ~/ -name '*.mp3' -user 'root'

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

موفق و موید باشید .