---
title: دستور tar لینوکس
description: "بایگانی، فشرده‌سازی و استخراج فایل‌ها از رایج‌ترین وظایف یک مدیر لینوکس است. اگر تا به حال با فایل‌های \"tarball\" که پسوند .tar، .tar.gz، .xz یا .bz2 دارند کار کرده‌اید، احتمال زیادی وجود دارد که با استفاده از ابزار .tar ایجاد شده باشد."
url: "https://www.novinhost.org/docs/linux-tar-command/"
updated: "2025-10-22"
category: راهنمای لینوکس
---

# دستور tar لینوکس

## دستور tar لینوکس چیست؟!

بایگانی، فشرده‌سازی و استخراج فایل‌ها از رایج‌ترین وظایف یک مدیر لینوکس است. اگر تا به حال با فایل‌های "tarball" که پسوند .tar، .tar.gz، .xz یا .bz2 دارند کار کرده‌اید، احتمال زیادی وجود دارد که با استفاده از ابزار .tar ایجاد شده باشد.

در این مقاله، ما نشان خواهیم داد که چگونه می‌توانید از این ابزار برای بایگانی، فشرده‌سازی و استخراج فایل‌ها در سیستم‌های لینوکس استفاده کنید . ما برای همه مثال‌ها از اوبونتو ۲۰.۰۴ استفاده خواهیم کرد، اما می‌توانید در هر سیستم لینوکسی که از . `tar`استفاده می‌کند، این آموزش را دنبال کنید .`tar`

`tar`— مخفف «tape archive» — یک ابزار خط فرمان گنو برای ایجاد و استخراج آرشیوها است.

بایگانی یک فایل واحد است که شامل چندین فایل یا دایرکتوری است. در جوامع متن‌باز و لینوکس، فایل‌های فشرده (tarballs) یکی از رایج‌ترین روش‌ها برای توزیع کد منبع و سایر فایل‌های مهم هستند.

علاوه بر ایجاد آرشیو، `tar`می‌تواند فشرده‌سازی و رفع فشار را با استفاده از چندین ابزار فشرده‌سازی مختلف مانند `gzip`و انجام دهد `bzip2`.

## tar در مقابل gzip

هنگام کار با آرشیوهای لینوکس، احتمالاً در زمینه‌های مشابه، در مورد `tar`و زیاد شنیده‌اید .`gzip`

تفاوت اساسی بین این دو ابزار این است: `tar`از چندین فایل آرشیو ایجاد می‌کند در حالی که `gzip`فایل‌ها را فشرده می‌کند.

با این حال، این ابزارها متقابلاً منحصر به فرد نیستند. `tar`می‌توانند `gzip`برای فشرده‌سازی فایل‌هایی که بایگانی می‌کنند استفاده شوند. سوئیچ `tar`'s باعث می‌شود که دستور از . استفاده کند .`z``tar``gzip`

## فشرده‌سازی gzip در مقابل bzip2 و xz

`gzip`تنها برنامه فشرده‌سازی نیست `tar`که می‌تواند از آن استفاده کند. همچنین `bzip2`از ... نیز پشتیبانی می‌کند `xz`. جدول زیر برخی از تفاوت‌های اساسی بین این ابزارهای فشرده‌سازی را شرح می‌دهد.

|  | gzip | فایل فشرده bzip2 | xz |
| --- | --- | --- | --- |
| الگوریتم فشرده‌سازی | باد کردن | باروز-ویلر | ال زد ام ای |
| پسوندهای رایج فایل‌ها | ‎.tar.gz، ‎.tgz، ‎.gz | tar.bz2، .bz2 | tar.xz، ‎.xz‎ |
| `tar`سوئیچ فرمان | `-z` | `-j` | `-J` |

به‌طورکلی، `gzip`و `bzip2`از دیدگاه فشرده‌سازی و عملکرد قابل مقایسه هستند، اما `gzip`به‌طور گسترده‌تری استفاده می‌شوند. `.xz`معمولاً بهترین فشرده‌سازی کلی را ارائه می‌دهد، اما زمان و منابع بیشتری از رایانه رومیزی لینوکس را نیز مصرف می‌کند .

*توجه:* در مثال‌های ما، ما بر استفاده از `gzip`. تمرکز خواهیم کرد. جایگزینی `-z`با `-j`در دستورات، `bzip2`به جای gzip از use استفاده می‌کند. استفاده از `-J`instead of به جای . `-z`استفاده خواهد شد .`xz``gzip`

## نحوه فشرده سازی یک فایل یا دایرکتوری واحد

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

```bash
tar -czvf <archive name> </path/to/file/or/directory>
```

در اینجا معنی هر یک از این سوئیچ‌ها آمده است:

- `c`- ایجاد آرشیو.
- `z`- بایگانی را از طریق آن اجرا کنید `gizp`.
- `v`- فهرست کردن فایل‌ها به صورت شفاهی.
- `f`- از یک فایل آرشیو مشخص استفاده کنید.

برای مثال، برای فشرده‌سازی `/pepper`دایرکتوری به یک آرشیو با نام `egg.tar.gz`، این دستور را اجرا کنید:

```bash
tar -czvf egg.tar.gz /pepper
```

خروجی مشابه زیر خواهد بود:

```bash
tar: Removing leading `/' from member names
/pepper/
/pepper/pepperAndegg.log
/pepper/pepperAndEgg.txt
/pepper/pepperandegg.log
```

![دستور tar لینوکس](https://www.novinhost.org/wp-content/uploads/2025/10/01-9.png)
 اگر سوئیچ را حذف کنیم `v`و به جای آن از دستور استفاده کنیم `tar -czf egg.tar.gz /pepper`، خروجی شامل هر فایل نمی‌شود. در عوض، شبیه به این خواهد بود:

🇫🇷 [**سرور مجازی فرانسه**](https://www.novinhost.org/%D8%B3%D8%B1%D9%88%D8%B1-%D9%85%D8%AC%D8%A7%D8%B2%DB%8C-%D9%81%D8%B1%D8%A7%D9%86%D8%B3%D9%87/) 🇫🇷

```bash
tar: Removing leading `/' from member names
```

و اگر هیچ خطایی یا کاراکتری که نیاز به حذف از نام اعضا داشته باشد وجود نداشته باشد - برای مثال، اگر ما در حال فشرده‌سازی فایل‌ها در دایرکتوری کاری فعلی خود باشیم - هیچ خروجی وجود نخواهد داشت.

*توجه:* بیش از یک راه برای مشخص کردن سوئیچ‌ها وجود دارد `tar`. متوجه خواهید شد که ما از قبل از مشخص کردن سوئیچ‌های `-`خود استفاده می‌کنیم. اگرچه این یک قرارداد رایج است، اما عموماً لازم نیست. همچنین کار خواهد کرد. همانطور که . ما در بقیه مثال‌های خود به قراردادی که در اینجا استفاده کردیم پایبند خواهیم بود، اما به خاطر داشته باشید که بیش از یک راه برای مشخص کردن گزینه‌ها وجود دارد .`tar``tar czvf <archive name> </path/to/file/or/directory>``tar -cf <archive name> -vz </path/to/file/or/directory>``tar`

## نحوه فشرده‌سازی چندین فایل یا دایرکتوری در یک آرشیو واحد

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

```bash
tar -czvf <archive name> </path/to/file/or/directory1> </path/to/file/or/directory2> ... </path/to/file/or/directoryN>
```

برای مثال، برای فشرده‌سازی فایل‌ها `one.txt`، `two.mp4`، و `three.iso`به آرشیوی با نام `egg.tar.gz`، این دستور را اجرا کنید:

```bash
tar -czvf egg.tar.gz one.txt two.mp4 three.iso
```

![دستور tar لینوکس](https://www.novinhost.org/wp-content/uploads/2025/10/02-8.png)

## نحوه‌ی مستثنی کردن دایرکتوری‌ها و فایل‌ها هنگام بایگانی

اگر یک دایرکتوری برای ایجاد آرشیو مشخص کنید، ممکن است بخواهید برخی فایل‌ها را از آرشیو حذف کنید. این `--exclude`گزینه به شما امکان می‌دهد الگوهایی را برای حذف از آرشیو خود مشخص کنید. هر فایلی که با الگوهای ارسال شده به این `--exclude`گزینه مطابقت داشته باشد، در آرشیو `tar`ایجاد شده گنجانده نخواهد شد.

دستور کلی برای حذف فایل‌ها از `tar`بایگانی عبارت است از:

```bash
tar --exclude=<PATTERN> <Options> <archive name> </path/to/directory>
```

`/pepper`برای مثال، فرض کنید این فایل‌ها را در دایرکتوری خود داریم :

- یک.txt
- دو.mp4
- سه.ایزو
- چهار.لاگ
- خروجی.log

و ما می‌خواهیم همه چیز را به جز فایل‌های .log در یک `egg.tar.gz`آرشیو فشرده کنیم. می‌توانیم از این دستور استفاده کنیم:

```bash
tar --exclude='*.log' -czvf egg.tar.gz /pepper
```

![دستور tar لینوکس](https://www.novinhost.org/wp-content/uploads/2025/10/03-8.png)
دستور tar لینوکس

در صورت نیاز، می‌توانید چندین `--exclude`الگو را در یک دستور واحد مشخص کنید.

## نحوه اضافه کردن فایل‌ها به بایگانی موجود

اگر یک آرشیو موجود دارید و می‌خواهید فایل‌هایی را به آن اضافه کنید، می‌توانید از گزینه‌های `-r`or استفاده کنید `--append`. یک دستور کلی برای افزودن فایل به آرشیوهای ‎.tar به صورت زیر است:

```bash
tar -rf <tar archive> </path/to/file>
```

با این حال، `-r`و با آرشیوهای فشرده سازگار نیستند. این بدان معناست که شما فقط می‌توانید از آنها با فایل‌های فشرده‌ای که از طریق برنامه‌های فشرده‌سازی مانند ، ، یا `--append`اجرا نکرده‌اید، استفاده کنید . اگر سعی کنید از یا روی یک آرشیو فشرده استفاده کنید، ممکن است خطایی مشابه زیر را مشاهده کنید:`gzip``bzip2``xz``-r``--append`

```bash
tar: Cannot update compressed archives
tar: Error is not recoverable: exiting now
```

به دلیل این محدودیت و برخی دیگر از تفاوت‌های ظریف `-r`و`--append` ، در بسیاری از موارد، ایجاد یک بایگانی جدید با فایل‌های اضافی آسان‌تر است.

## نحوه فهرست کردن محتویات یک بایگانی

`-t`شما می‌توانید با استفاده از گزینه‌های or ، محتویات یک آرشیو را فهرست کنید `--list`. دستور کلی برای فهرست کردن محتویات یک آرشیو به صورت زیر است:

```bash
 tar -tvf <archive>
```

گزینه‌های `-t`‎and `--list`‎ روی بایگانی‌های فشرده و غیرفشرده کار می‌کنند.

برای مثال، برای فهرست کردن محتویات یک `egg.tar.xz`آرشیو در دایرکتوری کاری فعلی خود، این دستور را اجرا کنید:

```bash
tar -tvf egg.tar.xz
```

![دستور tar لینوکس](https://www.novinhost.org/wp-content/uploads/2025/10/04-8.png)

## نحوه استخراج یک آرشیو

`tar`سوئیچ 's `-x`برای استخراج آرشیوها است. دستور کلی برای استخراج آرشیو در لینوکس عبارت است از:

```bash
tar -xf <archive>
```

این `tar -xf`دستور هم با فایل‌های فشرده و هم با فایل‌های فشرده نشده کار می‌کند.

برای مثال، برای استخراج یک `egg.tar.gz`آرشیو در دایرکتوری کاری فعلی، می‌توانیم از این دستور استفاده کنیم:

```bash
tar -xf egg.tar.gz
```

![دستور tar لینوکس](https://www.novinhost.org/wp-content/uploads/2025/10/05-8.png)

## نحوه استخراج یک آرشیو در یک دایرکتوری خاص

در برخی موارد، ممکن است بخواهید فایل‌ها را در دایرکتوری دیگری غیر از دایرکتوری کاری فعلی خود استخراج کنید. سوئیچ `tar`'s `-C`در این مورد مفید است. دستور کلی برای استخراج یک آرشیو در یک دایرکتوری خاص عبارت است از:

```bash
tar -xf <archive> -C </path/to/destination>
```

برای مثال، برای استخراج `egg.tar.gz`آرشیو خود در `/tmp/novinhost`می‌توانیم از این دستور استفاده کنیم:

```bash
tar -xf egg.tar.gz -C /tmp/novinhost
```

![دستور tar لینوکس](https://www.novinhost.org/wp-content/uploads/2025/10/06-7.png)

## نتیجه‌ گیری

حالا که اصول اولیه کار با را می‌دانید `tar`، می‌توانید مانند یک حرفه‌ای با "tarballs" کار کنید. به خاطر داشته باشید که `tar`انعطاف‌پذیر است و می‌توانید سوئیچ‌های مختلف را برای تولید نتایج متفاوت و تنظیم خروجی ترکیب کنید. برای بررسی عمیق‌تر ، به [دفترچه راهنمای رسمی GNU tar](https://www.gnu.org/software/tar/manual/)`tar` مراجعه کنید.
