اگر اهل دانلود از اینترنت باشید، اغلب ممکن است متوجه شده باشید که یک فایل را با پسوندهای mp3، pdf،epub (و انواع دیگر پسوندهای فایل) را چند مرتبه دانلود کرده و آنها را در دایرکتوریهای مختلفی کپی کرده باشید. اگر با نحوه یافتن و حذف فایلهای تکراری در لینوکس آشنا نباشید، سازماندهی دایرکتوری خانه یا کل سیستم شما میتواند به شدت سخت شود. زیرا با زیاد شدن فایلهای تکراری، فضای ذخیرهسازی سیستم شما با انواع فایلها و موارد غیر قابل استفاده، کاهش مییابد. ( خرید هاست لینوکس )
در این مطلب، شما نحوه یافتن و حذف فایلهای تکراری در لینوکس را با استفاده از ابزارهای خط فرمان و ابزارهایی با رابط کاربری گرافیکی خواهید آموخت. ( دانلود لینوکس اوبونتو ) ابزارهایی که در این مقاله به معرفی آنها پرداختهایم، عبارتند از:
- rdfind
- fdupes
- fslint
قبل از این که به نحوه یافتن و حذف فایلهای تکراری در لینوکس با استفاده از ابزارهای بالا بپردازیم، لازم به ذکر است که همیشه مراقب آنچه که از سیستم خود حذف میکنید باشید؛ زیرا ممکن است به طور ناخواسته باعث از دست دادن اطلاعات خود شوید. اگر از یک ابزار جدید استفاده میکنید، ابتدا آن را در یک دایرکتوری که فایل مهمی در آن ندارید، تست کنید. ( بازیابی اطلاعات حذف شده در لینوکس )
بیشتر بدانید
نحوه یافتن و حذف فایلهای تکراری در لینوکس با استفاده از دستور rdfind
rdfind فایل های تکراری را در لینوکس پیدا می کند. از این ابزار رایگان برای یافتن و حذف فایلهای تکراری در لینوکس، در سراسر یا داخل چندین دایرکتوری استفاده میشود و با استفاده از checksum فایلهای تکراری نه تنها بر اساس نام آنها، بلکه بر اساس اطلاعات فایل نیز پیدا میشوند.
rdfind از یک الگوریتم برای طبقهبندی فایلها استفاده میکند و تشخیص میدهد که کدام یک از فایلها، فایل اصلی است و بقیه را به صورت تکراری در نظر میگیرد. قوانین طبقهبندی rdfind عبارتند از:
- اگر فایل A در هنگام اسکن آرگومان ورودی، زودتر از فایل B پیدا شده باشد، A فایل اصلی در نظر گرفته میشود.
- اگر A در عمق کمتر از B یافت شود، A فایل اصلی در نظر گرفته میشود.
- اگر A زودتر از B پیدا شود، A فایل اصلی در نظر گرفته میشود.
اخرین ویژگی بالا برای زمانیست که هر دو فایل در یک دایرکتوری یافت شوند.
برای نصب rdfind در لینوکس، میتوانید از دستورات زیر با توجه به توزیع لینوکس خود استفاده کنید:
$ sudo apt install rdfind [On Debian, Ubuntu and Mint]
$ sudo yum install rdfind [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
$ sudo emerge -a sys-apps/rdfind [On Gentoo Linux]
$ sudo apk add rdfind [On Alpine Linux]
$ sudo pacman -S rdfind [On Arch Linux]
$ sudo zypper install rdfind [On OpenSUSE]
$ sudo dnf install rdfind [On Fedora 22+]
بیشتر بدانید
برای اجرای rdfind در یک دایرکتوری باید rdfind و دایرکتوری موردنظر خود را تایپ کنید. به عنوان مثال:
rdfind /home/user
همانطور که در تصویر بالا مشاهده میکنید، rdfind نتایج را در یک فایل به نام results.txt ، در همان دایرکتوری که برنامه را اجرا کردهاید ذخیره می کند. فایل حاوی تمام فایل های تکراری است که rdfind پیدا کرده است. در صورت نیاز میتوانید فایل را بررسی کرده و فایلهای تکراری را به صورت دستی حذف کنید.
از دستور rdfind میتوانید به شکل دیگری نیز استفاده کنید. دستور rdfind با استفاده از گزینه dryrun- ، یک لیست از فایلهای تکراری را بدون نیاز به هیچگونه اقدامی به شما ارائه میدهد:
rdfind -dryrun true /home/user
با استفاده از دستور زیر، هنگامی که فایلهای تکراری را پیدا کردید میتوانید آن ها را با hardlinks جایگزین کنید.
rdfind -makehardlinks true /home/user
و اگر می خواهید فایلهای تکراری را حذف کنید میتوانید دستور زیر را اجرا کنید.
rdfind -deleteduplicates true /home/user
برای بررسی گزینههای کاربردی دیگر از rdfind میتوانید از دستور زیر استفاده کنید:
man rdfind
یافتن و حذف فایلهای تکراری در لینوکس با استفاده از دستور fdupes
fdupes ابزار دیگری است که این امکان را برای شما فراهم میکند تا فایلهای تکراری را در سیستم خود شناسایی کنید. fdupes با جستجوی بازگشتی، مقایسه حجم فایلها و شناسایی محتوا، فایلهای تکراری در دایرکتوریها را شناسایی میکند. از روش های زیر برای تعیین فایل های تکراری استفاده می کند:
- مقایسه امضای جزئی md5sum
- مقایسه امضای کامل md5sum
- مقایسه بایت به بایت (byte-by-byte)
fdupes نیز درست مانند rdfind گزینههای مشابهی دارد:
- جستجوی بازگشتی
- نادیده گرفتن فایلهای خالی
- نمایش حجم فایلهای تکراری
- حذف بلافاصله فایلهای تکراری
- فایل هایی که بوجود آورنده آنها متفاوت است را نیز حذف میکند
نحوه کار با Fdupes شبیه به rdfind است. همچنین برای نصب fdupes میتوانید از دستورات گفته شده برای نصب rdfind استفاده کنید و rdfind را با fdupes جایگزین کنید. به سادگی دستور را به دنبال دایرکتوری که میخواهید اسکن کنید تایپ کنید.
fdupes dir
دستور بالا فایلهای تکراری در یک دایرکتوری خاص (dir) را شناسایی میکند. زمانی که این دستور اجرا شود، همه فایلهای تکراری (فایلهایی با نام، اندازه و محتوای یکسان) در آن دایرکتوری مشخص شده، جستجو و نمایش داده میشود.
اگر بخواهید فایلهای تکراری را به صورت بازگشتی در دایرکتوری مشخص شده و همچنین زیر دایرکتوری های موجود در آن، شناسایی کنید؛ میتوانید از دستور زیر استفاده نمایید:
fdupes -r dir
شما همچنین می توانید چندین دایرکتوری را مشخص کنید و یک دایرکتوری را به صورت بازگشتی جستجو کنید:
fdupes dir1 -r dir2
دستور بالا به صورت بازگشتی در هر دو دایرکتوری جستجو میکند و فایلهای تکراری را مشخص میکند.
برای اینکه fdupes اندازه فایلهای تکراری را محاسبه کند، از گزینه -S استفاده کنید.
fdupes -S dir
برای جمع آوری اطلاعات خلاصه در مورد فایل های یافت شده از گزینه -m استفاده کنید.
fdupes -m dir
در نهایت اگر شما می خواهید تمام فایلهای تکراری را حذف کنید، از گزینه -d مانند زیر استفاده کنید:
fdupes -d dir
پس از اجرای دستور بالا، باید شماره فایلی که میخواهید حذف کنید را وارد کنید.
اگر بخواهید اولین فایل ایجاد شده را حفظ کنید و سایر فایلها را حذف کنید، میتوانید از دستور -N استفاده کنید.
fdupes -dN dir
برای دریافت یک لیست از گزینههای موجود برای استفاده از fdupes، دستور زیر را اجرا کنید:
fdupes -help
Rdfind و fdupes هر دو ابزار بسیار مفید برای پیدا کردن فایل های تکراری در سیستم لینوکس شما هستند، اما هنگام حذف چنین فایلهایی، باید بسیار دقت کنید تا به صورت تصادفی باعث حذف فایلهای مهم نشوید.
اگر مطمئن نیستید که آیا به یک فایل نیاز دارید یا خیر، بهتر است یک نسخه پشتیبان از آن فایل ایجاد کنید و بعد آن را حذف کنید.
بدون دیدگاه