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

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

در این مطلب فرض بر این هست که شما با ساختار فایل سیستم لینوکس و برخی دستورهای ابتدایی اون آشنایی دارید. می‌تونید دو قسمت قبل رو برای این کار بخونید.

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

دستوری که معمولا باهاش آرشیو می‌کنیم tar هست. این دستور رو با تعدادی آپشن استفاده می‌کنیم. اولیش c هست به معنای create. یعنی می‌خوام یه فایل آرشیو درست کنم. بعد f می‌ذارم و منظورم فایلی هست که قراره خروجی توش قرار بگیره. f رو آخر میذارم تا بتونم جلوش اسم فایل خروجی رو بدم:

آخر سر اسم فایل‌هایی که می‌خوام آرشیو بشن رو میذارم. آخر اسم فایل خروجی خوبه که tar. بذاریم تا بدونیم این یه آرشیوه. تو قسمت قبل گفتم که برای لینوکس مهم نیست extension فایل چی باشه و فقط برای این که خودمون یادمون بمونه این کار رو می‌کنیم. گاهی تو آپشن‌ها v میذارن که به معنی verbose هست و توضیحات بیشتری میده راجع به کاری که داره می‌کنه.

حالا بیاید محتویات فایل‌هایی که بهش دادم و محتویات آرشیو رو مقایسه کنیم:

اون آخر هر خط محتوای فایل‌ها هستن. اولش هم مسیر نسبی هر فایل نوشته شده. چجوری بازش کنیم؟ دوباره همون دستور tar رو داریم و این دفعه آپشن x رو به معنی extract میذاریم به جای c:

تو این تصویر اون فایل آرشیو رو بردم یه پوشه جدید و بعد بازش کردم. دقت کنید دقیقا همون جور که بهش فایل‌ها رو دادم باز می‌کنه. تو دستور اول من مسیر نسبی فایل‌ها رو دادم. اگر مسیر مطلق بدیم (یعنی از / شروع کنیم به دادن مسیر) این دستور موقع آرشیو کردن اون / اولش رو برمی‌داره. چرا؟ چون موقع باز کردن دیگه نره تو اون جای اصلی بنویسه و تو پوشه‌ای که دستور اجرا میشه فایل‌ها باز بشن. بیاید یه مثال ببینیم:

تو این دستور من همون فایل‌های قبلی رو دادم ولی با مسیر مطلق. یه پیام می‌نویسه که / اول رو حذف کرده. محتوای فایل آرشیو رو نگاه کنید:

همه فایل‌ها مسیرشون بدون / ذخیره شده و وقتی بازش کنیم دقیقا همون ساختار پوشه‌ای رو توی پوشه‌ فعلی ایجاد می‌کنه نه توی جای اصلیش:

دقیقا از home شروع کرده و تا پایین رفته.

خیلی از موقع‌ها میشه که نیاز داریم تعداد زیادی فایل رو آرشیو کنیم و خوبه که فشرده‌اش کنیم. برای فشرده‌سازی چندین ابزار در لینوکس وجود داره. در اینجا ما فقط یکیش رو بررسی می‌کنیم که با اضافه کردن آپشن z به دستور tar انجام میشه. با این کار فایل بعد از آرشیو شدن به کمک gzip فشرده میشه:

من آخر فایل gz. گذاشتم که بدونم با gzip فشرده شده. می‌تونم با خود gzip این کار رو بکنم؛ یعنی اول با tar آرشیو کنم بعد با gzip فشرده‌اش کنم. وقتی با آپشن z فشرده کردیم باید با همین آپشن هم بازش کنیم تا فشرده‌سازیش برداشته بشه. دقت کنید الان که فشرده میشه دیگه فایل رو نمیشه به شکل متن دید. خودتون یه فایل بزرگ رو فشرده کنید و اندازه‌اش رو بررسی کنید. یادتونه با کدوم دستور و با چه آپشنی اندازه فایل رو به شکل human readable میشد دید؟

آپشن دیگه‌ای داریم که فایل‌های توی آرشیو رو نشون میده و اون t هست:

اگرم‌ خواستید یک فایل داخل آرشیو رو به روز رسانی کنید یا فایل جدید اضافه کنید از r استفاده کنید:

تو این قسمت دستور tar رو یاد گرفتیم تا باهاش فایل‌ها رو آرشیو کنیم. بحث این قسمت به اتمام رسید. امیدوارم براتون مفید بوده باشه. اگر سوال یا نظری دارید این پایین بفرمایید.

قسمت قبلی

قسمت بعدی