## 🎯 آموزش کامل فشردهسازی و آرشیو فایلها و پوشهها با دستور `tar` در لینوکس
دستور `tar` یکی از پرکاربردترین ابزارها در لینوکس برای:
- آرشیو کردن فایلها و دایرکتوریها
- فشردهسازی (Compress)
- استخراج (Extract)
است که تقریباً روی همهی توزیعهای لینوکسی به صورت پیشفرض نصب شده.
---
## 📦 ساخت آرشیو با `tar`
### ۱. ساخت فایل آرشیو ساده (بدون فشردهسازی)
```bash
tar -cvf archive_name.tar /path/to/directory
```
🔹 توضیح سوییچها:
- `-c` : ایجاد یک آرشیو جدید (create)
- `-v` : نمایش فایلهای در حال آرشیو شدن (verbose)
- `-f` : تعیین نام فایل خروجی (file)
**مثال:**
```bash
tar -cvf backup.tar /home/user/Documents
```
این دستور دایرکتوری Documents را به فایل backup.tar آرشیو میکند.
---
## 📦 فشردهسازی همراه با آرشیو
### ۲. آرشیو و فشردهسازی با gzip (`.tar.gz`)
```bash
tar -czvf archive_name.tar.gz /path/to/directory
```
🔹 سوییچ جدید:
- `-z` : فشردهسازی با gzip
**مثال:**
```bash
tar -czvf backup.tar.gz /var/www/html
```
---
### ۳. آرشیو و فشردهسازی با bzip2 (`.tar.bz2`)
```bash
tar -cjvf archive_name.tar.bz2 /path/to/directory
```
🔹 سوییچ جدید:
- `-j` : فشردهسازی با bzip2 (معمولاً فشردهتر از gzip)
**مثال:**
```bash
tar -cjvf backup.tar.bz2 /etc
```
---
### ۴. آرشیو و فشردهسازی با xz (`.tar.xz`)
```bash
tar -cJvf archive_name.tar.xz /path/to/directory
```
🔹 سوییچ جدید:
- `-J` : فشردهسازی با xz (بالاترین میزان فشردهسازی)
**مثال:**
```bash
tar -cJvf backup.tar.xz /opt
```
---
## 📂 استخراج آرشیوها با `tar`
### ۱. استخراج فایل `.tar`
```bash
tar -xvf archive_name.tar
```
### ۲. استخراج فایل `.tar.gz`
```bash
tar -xzvf archive_name.tar.gz
```
### ۳. استخراج فایل `.tar.bz2`
```bash
tar -xjvf archive_name.tar.bz2
```
### ۴. استخراج فایل `.tar.xz`
```bash
tar -xJvf archive_name.tar.xz
```
🔹 سوییچ جدید:
- `-x` : استخراج فایلهای آرشیو شده (extract)
---
## 📂 استخراج به یک دایرکتوری مشخص
مثال: استخراج فایل فشرده در `/tmp`
```bash
tar -xzvf archive_name.tar.gz -C /tmp
```
---
## ✂️ فقط استخراج فایل خاص از آرشیو
مثال: فقط یک فایل مشخص را از آرشیو خارج کن:
```bash
tar -xvf archive_name.tar somefolder/somefile.txt
```
---
## 🛠️ دستورات پیشرفته با `tar`
| دستور | توضیح |
|------------------------------------|-----------------------------------------------|
| `tar -tvf archive.tar` | نمایش محتویات آرشیو بدون استخراج |
| `tar -rvf archive.tar newfile.txt` | اضافه کردن فایل جدید به آرشیو موجود |
| `tar --delete -f archive.tar file` | حذف فایل خاص از آرشیو (توجه: فقط روی tar بدون فشردهسازی) |
| `tar -czf - /path | ssh user@server 'cat > backup.tar.gz'` | بکاپگیری و ارسال مستقیم به سرور دیگر |
---
## 🧠 نکات حرفهای
- میتوان با `split` فایلهای آرشیو بزرگ را به بخشهای کوچکتر تقسیم کرد.
- برای بکاپهای زمانبندیشده بهتر است از `cron` + `tar` استفاده شود.
- بهتر است آرشیوها را قبل از عملیات مهمی مثل upgrade سیستم داشته باشید.
---
## ✨ نتیجهگیری
دستور `tar` بسیار قدرتمند، سریع و قابل اطمینان است. چه برای گرفتن بکاپهای منظم، چه برای فشردهسازی جهت ارسال فایل به دیگران، همیشه یکی از بهترین انتخابهای لینوکس محسوب میشود.