پارامترهای Boot-Time در لینوکس














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

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

مقدمه: چرا مدیریت فایل‌های تکراری مهم است؟

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

اغلب ممکن است ببینید که همان فایل mp3، pdf و epub (و همه انواع دیگر پسوندهای فایل) را دانلود کرده‌اید و آن را به دایرکتوری‌های مختلف کپی کرده‌اید. این ممکن است باعث شود دایرکتوری‌های شما با انواع چیزهای تکراری بی‌فایده شلوغ شوند.

در این آموزش، شما یاد خواهید گرفت که چگونه فایل‌های تکراری را در لینوکس پیدا و حذف کنید با استفاده از ابزارهای خط فرمان rdfind، fdupes و rmlint و همچنین با استفاده از ابزارهای GUI به نام‌های DupeGuru و FSlint.

# هشدار مهم – همیشه مراقب باشید چه چیزی را در سیستم خود حذف می‌کنید
# زیرا این ممکن است منجر به از دست دادن ناخواسته داده شود
# اگر از یک ابزار جدید استفاده می‌کنید، ابتدا آن را در یک دایرکتوری تست امتحان کنید
# جایی که حذف فایل‌ها مشکل‌ساز نخواهد بود

1. Rdfind – پیدا کردن فایل‌های تکراری در لینوکس

Rdfind از redundant data find می‌آید که یک ابزار خط فرمان رایگان است برای پیدا کردن فایل‌های تکراری در بین یا درون چندین دایرکتوری. این ابزار به صورت بازگشتی دایرکتوری‌ها را اسکن می‌کند و فایل‌هایی را شناسایی می‌کند که محتوای یکسانی دارند و به شما امکان می‌دهد اقدامات مناسب مانند حذف یا جابجایی تکراری‌ها را انجام دهید.

الگوریتم رتبه‌بندی Rdfind

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

قوانین رتبه‌بندی:

  • اگر A زودتر از B در حین اسکن یک آرگومان ورودی پیدا شود، A رتبه بالاتری دارد
  • اگر A در عمق کمتری از B پیدا شود، A رتبه بالاتری دارد
  • اگر A زودتر از B پیدا شود، A رتبه بالاتری دارد

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

# نصب rdfind در توزیع‌های مختلف لینوکس
sudo apt install rdfind # دبیان، اوبونتو و مینت
sudo yum install rdfind # RHEL/CentOS/Fedora و Rocky/AlmaLinux
sudo emerge -a sys-apps/rdfind # جنتو لینوکس
sudo apk add rdfind # آلپاین لینوکس
sudo pacman -S rdfind # آرچ لینوکس
sudo zypper install rdfind # openSUSE

استفاده از Rdfind

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

rdfind /home/user

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

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

rdfind -dryrun true /home/user

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

rdfind -makehardlinks true /home/user

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

rdfind -deleteduplicates true /home/user

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

man rdfind

2. Fdupes – اسکن برای فایل‌های تکراری در لینوکس

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

روش‌های تشخیص Fdupes

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

  • مقایسه امضاهای md5sum جزئی
  • مقایسه امضاهای md5sum کامل
  • تأیید مقایسه بایت به بایت

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

# نصب fdupes در توزیع‌های مختلف لینوکس
sudo apt install fdupes # دبیان، اوبونتو و مینت
sudo yum install fdupes # RHEL/CentOS/Fedora و Rocky/AlmaLinux
sudo emerge -a sys-apps/fdupes # جنتو لینوکس
sudo apk add fdupes # آلپاین لینوکس
sudo pacman -S fdupes # آرچ لینوکس
sudo zypper install fdupes # openSUSE

استفاده از Fdupes

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

fdupes /home/user

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

fdupes -r /home/user

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

fdupes /home/user1 -r /home/user2

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

fdupes -S /home/user

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

fdupes -m /home/user

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

fdupes -d /home/user

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

# مثال خروجی تعاملی fdupes
[1] /home/user/file1.txt
[2] /home/user/backup/file1.txt

Set 1 of 1, preserve files [1 – 2, all]:

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

fdupes -dN /home/user

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

fdupes -help

3. Jdupes – فورک بهبود یافته Fdupes

jdupes یک فورک مدرن‌تر از fdupes کلاسیک است، اما بسیار سریع‌تر است، به طور فعال نگهداری می‌شود و ویژگی‌های زیادی اضافه می‌کند که fdupes ندارد.

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

بهبودهای کلیدی نسبت به Fdupes:

  • اسکن بسیار سریع‌تر روی دایرکتوری‌های بزرگ (به لطف الگوریتم‌های بهتر و موازی‌سازی)
  • می‌تواند تکراری‌ها را با hard links جایگزین کند تا فضای ذخیره شود
  • گزینه ایجاد symbolic links به جای حذف
  • خروجی دقیق‌تر و گزینه‌های اسکریپت‌نویسی پیشرفته
  • گزینه‌های حذف ایمن‌تر با promptهای تعاملی

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

# نصب jdupes در توزیع‌های مختلف لینوکس
sudo apt install jdupes # دبیان، اوبونتو، مینت
sudo yum install jdupes # RHEL، CentOS، Fedora، Rocky، AlmaLinux
sudo pacman -S jdupes # آرچ لینوکس
sudo zypper install jdupes # openSUSE

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

jdupes /home/user # اسکن یک دایرکتوری
jdupes -r /home/user # اسکن بازگشتی
jdupes -d /home/user # حذف تکراری‌ها به صورت تعاملی
jdupes -L /home/user # جایگزینی تکراری‌ها با hardlinks
jdupes -s /home/user # جایگزینی با symlinks

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

jdupes –help

4. Rmlint – حذف فایل‌های تکراری

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

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

# نصب rmlint در توزیع‌های مختلف لینوکس
sudo apt install rmlint # دبیان، اوبونتو و مینت
sudo yum install rmlint # RHEL/CentOS/Fedora و Rocky/AlmaLinux
sudo emerge -a sys-apps/rmlint # جنتو لینوکس
sudo apk add rmlint # آلپاین لینوکس
sudo pacman -S rmlint # آرچ لینوکس
sudo zypper install rmlint # openSUSE

ویژگی‌های پیشرفته Rmlint

# اسکن با گزینه‌های مختلف
rmlint –types=”duplicates” /path/to/scan
rmlint –size 1M-100M /path/to/scan # فایل‌های بین 1MB تا 100MB
rmlint –kernel-smylinks /path/to/scan # پیوندهای نمادین شکسته
rmlint –empty /path/to/scan # فایل‌های خالی

# تولید اسکریپت حذف خودکار
rmlint -o sh:delete_script.sh /path/to/scan

5. dupeGuru – پیدا کردن فایل‌های تکراری در لینوکس

dupeGuru یک ابزار متن‌باز و cross-platform است که می‌تواند برای پیدا کردن فایل‌های تکراری در یک سیستم لینوکس استفاده شود. این ابزار می‌تواند یا نام فایل‌ها یا محتوا را در یک یا چند پوشه اسکن کند. همچنین به شما امکان می‌دهد نام فایلی را پیدا کنید که شبیه به فایل‌هایی است که جستجو می‌کنید.

ویژگی‌های dupeGuru

  • الگوریتم تطابق فازی سریع که به شما کمک می‌کند فایل‌های تکراری را در عرض یک دقیقه پیدا کنید
  • قابل تنظیم – می‌توانید دقیقاً فایل‌های تکراری مورد نظر خود را بیرون بکشید
  • حذف فایل‌های ناخواسته از سیستم
  • پشتیبانی از پلتفرم‌های مختلف (ویندوز، مک و لینوکس)

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

# نصب dupeguru در توزیع‌های مختلف لینوکس
sudo apt install dupeguru # دبیان، اوبونتو و مینت
sudo yum install dupeguru # RHEL/CentOS/Fedora و Rocky/AlmaLinux
sudo emerge -a sys-apps/dupeguru # جنتو لینوکس
sudo apk add dupeguru # آلپاین لینوکس
sudo pacman -S dupeguru # آرچ لینوکس
sudo zypper install dupeguru # openSUSE

6. Czkawka – ابزار مدرن تمیز کردن فایل‌های تکراری برای لینوکس

Czkawka (تلفظ “ch-kav-ka” – به معنی “سکسکه” در لهستانی) یک ابزار رایگان و متن‌باز ساخته شده در Rust است که به شما کمک می‌کند فایل‌های غیرضروری را از سیستم خود پیدا و حذف کنید. این ابزار طراحی شده است تا یک جایگزین سریع، ایمن و سبک‌وزن برای ابزارهای قدیمی‌تر مانند FSlint باشد.

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

# هشدار – نسخه snap این برنامه دیگر نگهداری نمی‌شود
# می‌توانید از فرمت‌های بسته دیگر مانند flatpak یا باینری‌های از پیش ساخته شده از پروژه رسمی github استفاده کنید

نصب Czkawka

# نصب از طریق Flatpak (توصیه شده)
flatpak install flathub com.github.qarmin.czkawka

# نصب از طریق Snap
sudo snap install czkawka

استفاده از Czkawka

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

# رابط خط فرمان
czkawka_cli

# رابط گرافیکی
czkawka_gui

مثال‌های پیشرفته Czkawka

# پیدا کردن فایل‌های تکراری
czkawka_cli duplicate –directories /home/user –delete-method NONE

# پیدا کردن پوشه‌های خالی
czkawka_cli empty-folders –directories /home/user

# پیدا کردن فایل‌های موقت
czkawka_cli temporary –directories /home/user

# پیدا کردن پیوندهای نمادین شکسته
czkawka_cli broken-symlinks –directories /home/user

مقایسه ابزارهای پیدا کردن فایل‌های تکراری

معیارهای مقایسه:

  • سرعت: jdupes و Czkawka سریع‌ترین هستند
  • مصرف حافظه: fdupes و rdfind کمترین مصرف را دارند
  • امکانات: Czkawka و rmlint بیشترین امکانات را ارائه می‌دهند
  • سهولت استفاده: dupeGuru و Czkawka GUI بهترین برای کاربران تازه‌کار هستند
  • انعطاف‌پذیری: rmlint و jdupes بیشترین انعطاف را دارند

نکات امنیتی و بهترین روش‌ها

قبل از حذف فایل‌ها:

# همیشه ابتدا یک backup بگیرید
sudo tar -czf backup_before_cleanup.tar.gz /home/user

# از گزینه dry-run استفاده کنید
rdfind -dryrun true /home/user
fdupes -r /home/user | less

# فایل‌های سیستم را حذف نکنید
# فقط روی دایرکتوری home کاربران کار کنید

اسکریپت نمونه برای مدیریت امن فایل‌های تکراری:

#!/bin/bash

# اسکریپت نمونه برای مدیریت فایل‌های تکراری
BACKUP_DIR=”/backup/$(date +%Y%m%d_%H%M%S)”
SCAN_DIR=”/home/user”

echo “Creating backup in $BACKUP_DIR”
mkdir -p “$BACKUP_DIR”

echo “Scanning for duplicates…”
jdupes -r -S “$SCAN_DIR” > “$BACKUP_DIR/duplicates_list.txt”

echo “Summary of duplicates:”
jdupes -r -m “$SCAN_DIR”

echo “Review the list at: $BACKUP_DIR/duplicates_list.txt”
echo “When ready to delete, run: jdupes -r -d $SCAN_DIR”

نتیجه‌گیری

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

  • برای کاربران تازه‌کار: dupeGuru یا Czkawka با رابط گرافیکی
  • برای اسکریپت‌نویسی و اتوماسیون: jdupes یا rmlint
  • برای سیستم‌های قدیمی با منابع محدود: fdupes یا rdfind
  • برای مجموعه داده‌های بسیار بزرگ: jdupes یا Czkawka

همیشه به یاد داشته باشید که قبل از حذف هر فایلی، از داده‌های خود backup بگیرید و از گزینه dry-run برای پیش‌نمایش اقدامات استفاده کنید.



✍️ نویسنده: حسین سیلانی

🔗 درباره من: seilany.ir

📢 نویسندگی و مشارکت در وبلاگ: t.me/seilany