امیرحسین کریم پور
مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

آموزش مقایسه محتویات دایرکتوری ها در لینوکس | مقایسه محتوای پوشه

چگونه محتویات دو دایرکتوری را در لینوکس مقایسه کنیم؟ همانطور که میدانید ما همیشه از اطلاعات مهم و شخصی خود Backup گیری می کنیم فرض کنید که ما از یک پوشه که اطلاعات مهمی در آن قرار داده ایم روی یک هارد اکسترنال Backup گرفته ایم و چند وقت هست که اطلاعات زیادی را Backup گیری نکرده ایم و میخواهیم این کار را انجام بدهیم و میخواهیم بدانیم چه فایل ها و یا فولدر هایی روی هارد اول ما انباشت شده است که لازم به Backup گیری دارد.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

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

کار با ابزار خط فرمانی diff

دوستان اگر تا کنون با ابزار diff کار نکرده اید لازم میدانم توضیحاتی را راجع به این ابزار خدمتتان عرض کنم. syntax قراردادی برای ابزار diff به صورت زیر می باشد :

$ diff [OPTION]… FILES
$ diff options dir1 dir2 

به صورت پیش فرض خروجی دستور فوق به صورت الفبایی بر اساس اسم فایل یا subfolder نمایش داده می شود. به عنوان مثال بعدی سوئیچ q به دستور diff میگوید که تنها فایل ها (تکرار می کنم فایل) را که بین دو فولدر دیدی فرق دارد را در خروجی نمایش بده.

$ diff -q directory-1/ directory-2/

آموزش مقایسه محتویات دایرکتوری ها در لینوکس | مقایسه محتوای پوشه

مجددا تکرار می کنم ، ابزار diff به صورت پیش فرض درون subfolder ها را نمیبیند اما ما با استفاده از سوئیچ r می توانیم به این ابزار بگوییم که subdirectory ها را هم مورد مقایسه قرار بده. به مثال زیر توجه کنید :

$ diff -qr directory-1/ directory-2/ 

نحوه استفاده از ابزار گرافیکی Meld

ابزار گرافیکی Meld می توان گفت یک ابزار گرافیکی و بصری از ابزار diff است که در دسکتاپ های GNOME می تواند مورد استفاده قرار بگیرد. شما با استفاده از دستورات زیر با توجه به توزیعی که از آن استفاده می کنید می توانید ابزار گرافیکی Meld را روی لینوکس تان نصب کنید : 

$ sudo apt install meld  [Debian/Ubuntu systems]
$ sudo yum install meld  [RHEL/CentOS systems]
$ sudo dnf install meld  [Fedora 22+]

زمانیکه این ابزار را نصب کردید واژه meld را در Ubuntu Dash یا Linux Mint Menu و یا Activities Overview در توزیع های Fedora یا CentOS جستجو کنید و آنرا اجرا کنید. بعد از اجرا شدن شما با صفحه ای شبیه زیر روبرو خواهید شد. 

آموزش مقایسه محتویات دایرکتوری ها در لینوکس | مقایسه محتوای پوشه

با توجه به تصویر بالا شما می توانید File comparison و Directory comparison و همچنین Version control view را داشته باشید. برای مثال روی Directory comparison کلیک کنید. بعد از کلیک کردن روی این گزینه با صفحه زیر روبرو می شوید :

آموزش مقایسه محتویات دایرکتوری ها در لینوکس | مقایسه محتوای پوشه

با توجه به تصویر فوق دایرکتوری های که میخواهید مورد مقایسه قرار دهید را انتخاب کنید. توجه داشته باشید که شما می توانید با زدن تیک گزینه 3way Comparison می توانید دایرکتوری سوم تان را هم انتخاب کنید. زمانیکه دایرکتوری ها را انتخاب کردید بر روی دکمه Compare کلیک کنید. بعد از کلیک کردن روی این دکمه با تصویر زیر روبرو میشوید :

آموزش مقایسه محتویات دایرکتوری ها در لینوکس | مقایسه محتوای پوشه

سخن پایانی

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


امیرحسین کریم پور
امیرحسین کریم پور

مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

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

نظرات