تقریباً هر کاربری که مدتی با لینوکس کار کند، دیر یا زود با فایلهایی مانند .tar.gz، .tar.xz یا .zip روبهرو میشود. اگر تا به حال از خودتان پرسیدهاید که تفاوت این فرمتها چیست یا چرا بعضی فایلها پسوند .tar.gz دارند، این مقاله برای شماست.
در این مطلب یاد میگیریم:
یکی از رایجترین اشتباهات کاربران این است که فکر میکنند دستور tar فایلها را فشرده میکند.
در واقع:
-Archive یعنی چند فایل را داخل یک فایل واحد قرار دهیم.
-Compression یعنی حجم دادهها را کاهش دهیم.
برای مثال :
فرض کنید یک دایرکتوری دارین که توی یکسری فایل وجود داره
photos/
img1.jpg
img2.jpg
img3.jpgدستور زیر فقط همه فایلها را در یک فایل قرار میدهد:
orbitux@pop-os:~ tar -cf photos.tar photosاما حجم فایل تقریباً تغییری نمیکند.
اگر بخواهیم حجم نیز کاهش پیدا کند باید از یک الگوریتم فشردهسازی مانند gzip یا xz استفاده کنیم.
ساخت آرشیو:
orbitux@pop-os:~ tar -cf archive.tar folderنمایش محتویات:
orbitux@pop-os:~ tar -tf archive.tar/استخراج فایل:
orbitux@pop-os:~ tar -xf archive.tar/ساخت فایل:
orbitux@pop-os:~ tar -czf archive.tar.gz folder/استخراج:
orbitux@pop-os:~ tar -xzf archive.tar.gzپارامترها:
| گزینه | توضیح |
|---|---|
| c | ساخت آرشیو |
| x | استخراج |
| z | استفاده از gzip |
| f | نام فایل |
| v | نمایش فایلهای در حال پردازش |
فشردهسازی:
orbitux@pop-os:~ tar -cjf archive.tar.bz2 folder/استخراج:
orbitux@pop-os:~ tar -xjf archive.tar.bz2/مزایا:
اگر بیشترین میزان فشردهسازی را میخواهید:
orbitux@pop-os:~ tar -cJf archive.tar.xz folder/استخراج:
orbitux@pop-os:~ tar -xJf archive.tar.xz/مزایا:
معایب:
ساخت فایل zip:
orbitux@pop-os:~ zip -r archive.zip folder/استخراج:
orbitux@pop-os:~ unzip archive.zipفرمت ZIP بیشتر برای انتقال فایل بین ویندوز و لینوکس استفاده میشود.
خب حالا یک مقایسه کلی و سریع بکنیم ببینیم کدوم فرمت بهتره
| فرمت | سرعت | میزان فشردهسازی | کاربرد |
|---|---|---|---|
| tar | ⭐⭐⭐⭐⭐ | ندارد | فقط آرشیو |
| gzip | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | استفاده روزمره |
| bzip2 | ⭐⭐⭐ | ⭐⭐⭐⭐ | حجم کمتر |
| xz | ⭐⭐ | ⭐⭐⭐⭐⭐ | انتشار نرمافزار |
| zip | ⭐⭐⭐⭐ | ⭐⭐⭐ | سازگاری با ویندوز |
orbitux@pop-os:~ tar -tf archive.tar.gzorbitux@pop-os:~ tar -xzf archive.tar.gz -C /home/user/Desktop/orbitux@pop-os:~ gzip file.txtخروجی:
file.txt.gzبازگرداندن:
orbitux@pop-os:~ gunzip file.txt.gzقبل:
orbitux@pop-os:~ du -sh folderبعد:
orbitux@pop-os:~ du -sh archive.tar.gzاگر فقط یک روش را بخواهید یاد بگیرید، پیشنهاد میکنم ابتدا tar همراه با gzip را یاد بگیرید؛ زیرا رایجترین ترکیب در دنیای لینوکس است و تقریباً در همه توزیعها و پروژههای متنباز با فایلهای .tar.gz روبهرو خواهید شد. پس از آن، آشنایی با xz و zip میتواند نیازهای پیشرفتهتر و سناریوهای مختلف را پوشش دهد.