بهترین نرم‌افزارهای شناسایی و حذف فایل‌های تکراری در لینوکس

در سیستم‌عامل لینوکس، کاربر کنترل زیادی بر فایل‌ها و ساختار داده‌های خود دارد، اما یکی از مشکلات رایجی که در گذر زمان بروز می‌کند، تجمع فایل‌های تکراری است. این فایل‌ها ممکن است در مسیرهای مختلف، با نام‌های گوناگون اما محتوای یکسان ذخیره شده و در نهایت بخش زیادی از فضای ذخیره‌سازی را بیهوده اشغال کنند. هرچند این مشکل کوچک به نظر می‌رسد، اما در محیط‌های بزرگ مانند سرورها، آرشیوهای داده و کتابخانه‌های محتوایی، می‌تواند تاثیر محسوسی بر کارایی سیستم داشته باشد.
به همین دلیل، ابزارهای مختلفی برای شناسایی و حذف فایل‌های تکراری در لینوکس توسعه یافته‌اند که می‌توانند به کاربران در آزادسازی فضا و ساماندهی فایل‌ها کمک کنند. در این مطلب به معرفی و بررسی چند نرم‌افزار برتر در این زمینه می‌پردازیم، همراه با توضیح مزایا، نحوه استفاده و نکات مهم برای استفاده ایمن از آن‌ها.

اهمیت شناسایی فایل‌های تکراری

وجود فایل‌های تکراری در یک سیستم ممکن است در ابتدا بی‌اهمیت به نظر برسد، اما پیامدهای آن به مرور زمان آشکار می‌شود. این فایل‌ها باعث می‌شوند فضای دیسک سریع‌تر پر شده، زمان بکاپ‌گیری افزایش یافته و گاهی اوقات هنگام جستجو یا باز کردن فایل‌ها، کاربر دچار سردرگمی شود. علاوه بر این، اگر چند کاربر از یک سیستم مشترک استفاده کنند، تکرار فایل‌ها می‌تواند به افزایش بار روی حافظه و کاهش بهره‌وری کلی منجر شود.
در نتیجه، حذف هوشمندانه فایل‌های تکراری نه‌تنها فضای دیسک را آزاد می‌کند، بلکه نظم و ساختار بهتری در سیستم فایل به وجود می‌آورد.

معرفی بهترین ابزارهای شناسایی فایل‌های تکراری در لینوکس
ابزارهای متعددی برای این منظور در دسترس هستند که هرکدام ویژگی‌های خاصی دارند. برخی به‌صورت خط فرمان عمل می‌کنند و برای مدیران سیستم مناسب‌ترند و برخی دیگر رابط گرافیکی دارند و برای کاربران دسکتاپ گزینه‌ای آسان‌تر به شمار می‌روند. در ادامه شش مورد از معروفترین و کارآمدترین این نرم‌افزارها را معرفی می‌کنیم.

rdfind

ابزار rdfind که نام آن مخفف redundant data find است، یکی از ساده‌ترین و در عین حال قدرتمندترین گزینه‌ها برای شناسایی فایل‌های تکراری در لینوکس محسوب می‌شود.

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

از ویژگی‌های کلیدی rdfind می‌توان به موارد زیر اشاره کرد:

  • امکان اجرای بازگشتی در شاخه‌های مختلف فایل‌سیستم
  • قابلیت شبیه‌سازی عملیات (dry-run) بدون حذف واقعی فایل‌ها
  • امکان جایگزینی فایل‌های تکراری با لینک سخت (Hard Link) برای صرفه‌جویی در فضا
  • سازگاری با اکثر توزیع‌های لینوکس و نصب آسان از مخازن رسمی

نصب Rdfind در لینوکس

برای نصب rdfind در لینوکس، از دستور زیر مطابق با توزیع لینوکس خود استفاده کنید.

برای اجرای rdfind در یک دایرکتوری، کافیست rdfind و دایرکتوری هدف را تایپ کنید.

همانطور که می‌بینید، rdfind نتایج را در فایلی به نام results.txt که در همان دایرکتوری که برنامه را اجرا کرده‌اید، قرار دارد، ذخیره می‌کند. این فایل شامل تمام فایل‌های تکراری است که rdfind پیدا کرده است. در صورت تمایل می‌توانید فایل را بررسی کرده و فایل‌های تکراری را به صورت دستی حذف کنید.

کار دیگری که می‌توانید انجام دهید استفاده از گزینه -dryrun است که لیستی از فایل‌های تکراری را بدون انجام هیچ اقدامی ارائه می‌دهد:

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

و اگر می‌خواهید فایل‌های تکراری را حذف کنید، می‌توانید اجرا کنید.

برای بررسی سایر گزینه‌های مفید rdfind، می‌توانید از راهنمای rdfind استفاده کنید.

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

fdupes

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

از امکانات مهم fdupes :

  • قابلیت جستجوی بازگشتی در مسیرهای دلخواه
  • نمایش اندازه فایل‌های تکراری و جمع کل فضای اشغال‌شده
  • گزینه‌ی حذف فایل‌ها همراه با پرسش از کاربر برای انتخاب فایل اصلی
  • سبک و کم‌مصرف بودن، مناسب برای استفاده در سرورها یا اسکریپت‌ها

نصب Fdupes در لینوکس

نصب Fdupes در لینوکس برای نصب fdupes در لینوکس، از دستور زیر بسته به توزیع لینوکس خود استفاده کنید.

سینتکس Fdupes مشابه rdfind است. کافیست دستور را به همراه دایرکتوری که می‌خواهید اسکن کنید تایپ کنید.

برای جستجوی بازگشتی فایل‌ها، باید گزینه r- را مانند این مشخص کنید.

همچنین می‌توانید چندین دایرکتوری را مشخص و یک دایرکتوری را برای جستجو به صورت بازگشتی انتخاب کنید.

برای اینکه fdupes اندازه فایل‌های تکراری را محاسبه کند، از گزینه S- استفاده کنید.

برای جمع‌آوری اطلاعات خلاصه در مورد فایل‌های یافت شده، از گزینه m- استفاده کنید.

در نهایت، اگر می‌خواهید همه فایل‌های تکراری را حذف کنید، از گزینه d- مانند این استفاده کنید.

Fdupes از شما می‌پرسد کدام یک از فایل‌های یافت شده را حذف کنید. باید شماره فایل را وارد کنید:

راه حلی که قطعا توصیه نمی‌شود، استفاده از گزینه N- است که منجر به حفظ فقط فایل اول می‌شود.

برای دریافت لیستی از گزینه‌های موجود برای استفاده با fdupes، صفحه راهنما را با اجرای دستور زیر بررسی کنید.

یکی از ویژگی‌های مثبت fdupes این است که هنگام حذف، از کاربر می‌پرسد کدام فایل را نگه دارد. بنابراین احتمال حذف اشتباه بسیار کاهش می‌یابد. اگر نیاز دارید فایل‌های تکراری را به شکل دستی مرور و تصمیم‌گیری کنید، این ابزار انتخابی مطمئن است.

jdupes

ابزار jdupes نسخه‌ی بهبود یافته و سریع‌تر fdupes است. توسعه‌دهندگان آن با هدف افزایش سرعت و اضافه کردن قابلیت‌های بیشتر، این نرم‌افزار را بازنویسی کرده‌اند.
jdupes به‌ویژه برای سیستم‌هایی با حجم بالای داده مناسب است. این ابزار علاوه بر مقایسه محتوا، امکان لینک کردن فایل‌های تکراری به یکدیگر را نیز فراهم می‌کند تا فضای ذخیره‌سازی به شکل موثری آزاد شود.

ویژگی‌های شاخص jdupes شامل:

  • سرعت بسیار بالا نسبت به fdupes
  • پشتیبانی از لینک سخت و سیمبولیک برای جایگزینی فایل‌های تکراری
  • گزارش‌گیری دقیق و خروجی قابل استفاده در اسکریپت‌ها
  •  گزینه‌های متعدد برای تنظیم نوع مقایسه و نحوه‌ی خروجی

نصب Jdupes روی لینوکس

برای نصب Jdupes در لینوکس، از دستور زیر بسته به توزیع لینوکس خود استفاده کنید.

مثال‌های استفاده:

گزینه‌های بیشتر را با موارد زیر بررسی کنید:

کاربران حرفه‌ای و مدیران سیستم که با حجم زیادی از داده سر و کار دارند، معمولا jdupes را ترجیح می‌دهند، زیرا در مقیاس‌های بزرگ عملکرد بسیار کارآمدتری دارد.

rmlint

در میان ابزارهای خط فرمان، rmlint یکی از قدرتمندترین و همه‌کاره‌ترین گزینه‌ها است. این برنامه فقط فایل‌های تکراری را پیدا نمی‌کند، بلکه می‌تواند سایر موارد زائد سیستم را نیز شناسایی کند، مانند فایل‌های خالی، لینک‌های خراب، فایل‌های موقت و پوشه‌های بدون استفاده.

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

از مزایای مهم rmlint می‌توان موارد زیر را برشمرد:

  • سرعت بالا در اسکن حتی دایرکتوری‌های بسیار بزرگ
  • پشتیبانی از حذف، جابجایی یا گزارش نتایج به فایل خروجی
  • شناسایی فایل‌های یتیم (orphan) و لینک‌های نامعتبر
  • امکان تولید اسکریپت پاک‌سازی برای اجرای خودکار عملیات در آینده

نصب Rmlint در لینوکس

برای نصب Rmlint در لینوکس، از دستور زیر بسته به توزیع لینوکس خود استفاده کنید.

rmlint ابزاری است که برای پاک‌سازی کامل سیستم استفاده می‌شود و می‌تواند به آزادسازی فضای قابل توجهی در دیسک کمک کند.

dupeGuru

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

در dupeGuru می‌توان اسکن را بر اساس نام فایل، محتوا یا حتی تشابه ظاهری (Fuzzy Matching) انجام داد. به‌عنوان مثال، اگر چند عکس با نام‌های تقریبا مشابه دارید یا نسخه‌هایی از یک آهنگ با تفاوت جزئی در نام ذخیره کرده‌اید، این برنامه می‌تواند آن‌ها را تشخیص دهد.

ویژگی‌های کلیدی dupeGuru عبارتند از:

  • پشتیبانی از انواع فرمت‌های فایل، از جمله صوتی، تصویری و متنی
  • توانایی یافتن فایل‌های تقریبا مشابه، نه فقط کاملا یکسان
  • امکان مشاهده پیش‌نمایش نتایج قبل از حذف
  • قابلیت تنظیم دقیق معیارهای مقایسه و فیلتر کردن مسیرها

نصب dupeGuru در لینوکس

برای نصب dupeGuru در لینوکس، از دستور زیر بسته به توزیع لینوکس خود استفاده کنید.

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

Czkawka

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

ویژگی‌های برجسته‌ی این نرم‌افزار:

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

Czkawka در اکثر مخازن لینوکس موجود نیست، اما می‌توانید آن را به راحتی با استفاده از Flatpak یا Snap نصب کنید:

پس از نصب، می‌توانید آن را از منوی application (برای رابط کاربری گرافیکی) اجرا کنید یا با استفاده از czkawka_cli آن را از ترمینال اجرا کنید.

به‌دلیل استفاده از زبان برنامه‌نویسی Rust، عملکرد این ابزار بسیار سریع است و در سیستم‌های مدرن تجربه‌ی کاربری مطلوبی ارائه می‌دهد.

خرید vps لینوکس یک ماشین مجازی کامل است که امکان دسترسی SSH طبق آموزش را به آن خواهید داشت.
خرید vps لینوکس در پنج موقعیت جغرافیایی ایران، فرانسه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.

نکات مهم پیش از حذف فایل‌های تکراری

پیش از استفاده از هر ابزار حذف فایل، باید چند نکته مهم را در نظر گرفت تا از بروز خطا یا حذف ناخواسته فایل‌های ضروری جلوگیری شود:

  1. تهیه نسخه بکاپ: همیشه پیش از انجام عملیات حذف، از فایل‌ها و پوشه‌های مهم خود نسخه‌ی بکاپ تهیه کنید.
  2. استفاده از حالت شبیه‌سازی (Dry Run): بسیاری از این ابزارها قابلیتی دارند که عملیات را بدون حذف واقعی شبیه‌سازی می‌کند. این گزینه بهترین راه برای بررسی نتایج قبل از اقدام نهایی است.
  3. بررسی نتایج اسکن: پس از اجرای برنامه، لیست فایل‌های تکراری را با دقت مرور کنید و مطمئن شوید نسخه‌ای که قرار است نگه داشته شود، همان فایل اصلی است.
  4. حذف تدریجی: اگر تازه‌کار هستید، بهتر است در ابتدا فقط یک پوشه را بررسی و پاک‌سازی کنید تا با نحوه عملکرد ابزار آشنا شوید.
  5. احتیاط در پوشه‌های سیستمی: هرگز مسیرهایی مانند etc, /usr, /bin/ یا سایر شاخه‌های سیستمی را بدون آگاهی اسکن و حذف نکنید، زیرا ممکن است فایل‌های ضروری سیستم آسیب ببینند.

انتخاب ابزار مناسب برای نیاز شما

انتخاب نرم‌افزار مناسب بستگی به هدف و نوع کاربری شما دارد. اگر مدیر سیستم هستید و با حجم زیادی از داده در سرور سروکار دارید، ابزارهایی مانند jdupes یا rmlint برای شما ایده‌آل هستند، زیرا هم سرعت بالایی دارند و هم قابلیت اسکریپت‌پذیری.
اگر کاربر دسکتاپ هستید و به رابط گرافیکی علاقه دارید، dupeGuru یا Czkawka تجربه‌ای آسان‌تر و امن‌تر برایتان فراهم می‌کنند. در مقابل، rdfind و fdupes برای افرادی مناسب‌اند که می‌خواهند با دستورات ساده و دقیق، از طریق ترمینال فایل‌های تکراری را مدیریت کنند.
در هر حالت، مهم است که ابزار انتخابی بتواند پیش‌نمایش فایل‌ها را نشان دهد، امکان تایید دستی را داشته باشد و از حذف خودکار بدون تأیید کاربر پرهیز کند.

جمع‌بندی

فایل‌های تکراری ممکن است در نگاه اول مشکلی جزئی به نظر برسند، اما در عمل می‌توانند فضای ارزشمند ذخیره‌سازی را اشغال کرده و نظم سیستم را به‌هم بزنند. شناسایی و حذف این فایل‌ها در لینوکس با استفاده از ابزارهای مناسب، فرایندی سریع، ایمن و موثر خواهد بود.
ابزارهایی مانند rdfind، fdupes و jdupes برای کاربران حرفه‌ای که به خط فرمان تسلط دارند بسیار مفیدند، در حالی‌که dupeGuru و Czkawka تجربه‌ای گرافیکی و آسان‌تر را ارائه می‌دهند. rmlint هم برای پاک‌سازی عمیق‌تر و جامع‌تر سیستم انتخابی قدرتمند است.
در نهایت، هرچند ابزارها متفاوتند، فلسفه‌ی کار یکی است، یافتن داده‌های تکراری، آزادسازی فضا و بازگرداندن نظم به ساختار فایل‌ها. با کمی دقت در استفاده از این برنامه‌ها و رعایت نکات ایمنی، می‌توان به‌راحتی از آشفتگی فایل‌ها رهایی یافت و کارایی سیستم لینوکسی را به میزان چشمگیری افزایش داد.