دستور fd چیست و چطور جایگزین find در ترمینال می‌شود
معرفی ابزار

دستور fd چیست و چطور جایگزین find در ترمینال می‌شود

دستور fd ابزاری پرسرعت بر پایه زبان راست است که جستجوی فایل در سیستم‌عامل را بسیار ساده‌تر از فرمان قدیمی find می‌کند.

تحریریه‌ی دینا کد
نویسنده
۵ دقیقه مطالعه۰ بازدید
اشتراک گذاری۰
فهرست مطالب
  1. ۱ابزار fd چه کاری انجام می‌دهد
  2. ۲چه افرادی به fd نیاز دارند
  3. ۳شیوه نصب fd در سیستم‌عامل‌های مختلف
  4. ۴اولین فرمان و نمونه خروجی
  5. ۵تفاوت‌های کلیدی fd با دستور سنتی find
  6. ۶محدودیت‌های واقعی fd در محیط‌های عملیاتی

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

ابزار fd چه کاری انجام می‌دهد

ابزار fd برنامه‌ای ساده، بسیار سریع و کاربرپسند برای جستجوی فایل‌ها و پوشه‌ها در خط فرمان است. این پروژه متن‌باز را دیوید پیتر (sharkdp) به زبان راست توسعه داده است. در حالی که دستور سنتی find برای همه‌منظوره بودن طراحی شده و در اسکریپت‌های سیستمی قدیمی کاربرد دارد، fd نیازهای روزمره یک برنامه‌نویس مدرن را اولویت قرار می‌دهد. این برنامه به صورت پیش‌فرض پوشه‌های مخفی و محتوای پرونده .gitignore را نادیده می‌گیرد و جستجو را به صورت موازی روی هسته‌های پردازنده اجرا می‌کند.

توسعه چنین ابزارهایی با کارایی حافظه و سرعت بالا نشان‌دهنده ظرفیت‌های ویژه زبان راست در حوزه ابزارهای خط فرمان است؛ موضوعی که در دوره راست از صفر تا برنامه‌نویس نیز به صورت ریشه‌ای بررسی می‌شود.

چه افرادی به fd نیاز دارند

توسعه‌دهندگان وب و نرم‌افزار که روزانه با مخازن بزرگ کدهای منبع کار می‌کنند بیشترین بهره را از این ابزار می‌برند. اگر در پروژه‌ای با هزاران فایل در پوشه node_modules یا target کار می‌کنید، جستجو با ابزارهای قدیمی سیستم شما را معطل می‌کند. مدیران سیستم و کاربرانی که زمان زیادی را در محیط شل می‌گذرانند نیز می‌توانند با جایگزین کردن این ابزار، کارهای روزمره را سریع‌تر پیش ببرند.

شیوه نصب fd در سیستم‌عامل‌های مختلف

نصب fd در تمام توزیع‌های مطرح لینوکس و سیستم‌عامل مک به راحتی انجام می‌شود. در توزیع اوبونتو و دبیان می‌توانید با اجرای دستور زیر آن را نصب کنید:

bashsudo apt update
sudo apt install fd-find

در دبیان و اوبونتو به دلیل تداخل نام با یک بسته قدیمی دیگر، فایل اجرایی با نام fdfind ذخیره می‌شود. برای اینکه با همان نام کوتاه کار کنید، ساخت یک پیوند یا نام مستعار در شل بهترین کار است:

bashalias fd=fdfind

در مکینتاش با مدیریت بسته‌های Homebrew این دستور را اجرا کنید:

bashbrew install fd

همچنین اگر روی سیستم خود زنجیره ابزار زبان راست را دارید، نصب مستقیم از مخزن Crates به صورت زیر ممکن است:

bashcargo install fd-find

اولین فرمان و نمونه خروجی

برای جستجوی یک فایل ساده دیگر نیازی به نوشتن عبارت‌های پیچیده‌ای مثل find . -name "*search*" ندارید. کافی است نام یا بخشی از الگوی مورد نظر را بعد از نام دستور وارد کنید:

bashfd config

خروجی این دستور بلافاصله مسیر فایل‌های مطابق را به همراه رنگ‌آمیزی بر پایه نوع فایل نمایش می‌دهد:

textsrc/config.rs
tests/fixtures/config.json

اگر بخواهید تنها به دنبال فایل‌هایی با پسوند مشخص مثلاً اسکریپت‌های پایتون بگردید، پارامتر e- کار را انجام می‌دهد:

bashfd -e py

این دستور تمام فایل‌های با پسوند .py را بدون نیاز به ساخت الگوهای گیج‌کننده فهرست می‌کند.

تفاوت‌های کلیدی fd با دستور سنتی find

تفاوت اول در رفتار پیش‌فرض است. فرمان find به شکل پیش‌فرض وارد پوشه‌های مخفی مثل .git می‌شود و تمام فایل‌های نادیده‌گرفته‌شده در پروژه را هم می‌گردد، اما fd فایل‌های داخل .gitignore و موارد پنهان را جستجو نمی‌کند مگر اینکه با پرچم u- از آن بخواهید.

تفاوت دوم حساسیت به بزرگی و کوچکی حروف است. اگر کلمه جستجو را تماماً با حروف کوچک بنویسید، جستجو بدون حساسیت به حروف اجرا می‌شود؛ اما به محض اینکه یک حرف بزرگ وارد کنید، جستجو حساس به حروف خواهد شد.

تفاوت سوم سرعت اجرا است. استفاده از پیمایش چندنخی و پیاده‌سازی کارآمد به زبان راست باعث می‌شود جستجو در پروژه‌های حجیم تا چند برابر سریع‌تر از ابزارهای پیش‌فرض یونیکس به پایان برسد.

محدودیت‌های واقعی fd در محیط‌های عملیاتی

با وجود تمام نقاط قوت، fd جایگزین کامل برای هر سناریویی نیست. مهم‌ترین محدودیت این است که ابزار در تمام سرورها به صورت پیش‌فرض نصب نیست. در نتیجه هنگام نوشتن اسکریپت‌های شل پرتابل یا خط لوله‌های استقرار سرور که باید روی هر ماشین لینوکسی بدون پیش‌نیاز اجرا شوند، اتکا به find استاندارد همچنان انتخاب مطمئن‌تری است.

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

تحریریه‌ی دینا کد
نویسنده

نظرها

اولین نفری باشید که نظر می‌دهد
برای ثبت نظر وارد شوید

سؤالتان را بپرسید یا تجربه‌تان را بنویسید تا نویسنده‌ی مطلب پاسخ بدهد.

مطالب مرتبط

از همین دسته
ابزار ripgrep چیست و چرا جستجوی فایل‌ها را دگرگون کرد
معرفی ابزار

ابزار ripgrep چیست و چرا جستجوی فایل‌ها را دگرگون کرد

ابزار ripgrep با تکیه بر سرعت موتور زبان راست و نادیده گرفتن خودکار فایل‌های پنهان، جستجوی الگوهای متنی در پروژه‌های بزرگ را چند برابر سریع‌تر از grep سنتی می‌کند.

تحریریه‌ی دینا کد۴ دقیقه