دستور tar (مخفف عبارت tap archive) در لینوکس یک فایل فشرده نیست؛ بلکه معمولاً به عنوان یک مجموعه (که شامل تعداد زیادی از فایل‌ها است) از یک فایل واحد خوانده می‌شود.

tar رایج‌ترین دستور در لینوکس برای ایجاد یک فایل بایگانی است که چندین فایل، پوشه و سایر فرمت‌های فایل (zip، gzip، bzip2 و tar) را در یک فایل ذخیره می‌نماید. بسیاری از ما به طور مکرر از سه عملیات create ،list و extract و دو گزینه file و verbose با استفاده از دستور tar در جهت پشتیبان‌گیری و بازیابی داده‌ها استفاده می‌کنیم.

 

علاوه‌بر‌این می‌توانیم از دستورات gzip و bzip2 برای فشرده‌سازی بیشتر فایل بایگانی از نوع tar استفاده نماییم. نه تنها مدیران سرور از دستور  tar برای پشتیبان‌گیری (کامل و افزایشی) از سرور استفاده می‌کنند، بلکه سایر برنامه‌های پشتیبان‌گیری نیز از دستور tar برای تهیه نسخه پشتیبان استفاده می‌نمایند.

فایل‌ها و پوشه‌ها را می‌توانید در هر زمان که بخواهید، از روی فایل بایگانی بازیابی کنید.

مدیران سرور باید با دستور tar آشنایی داشته و از آن برای تهیه یک نسخه پشتیبان مناسب استفاده نمایند.

به طور پیش فرض دستور tar در بیشتر توزیع‌های لینوکس وجود دارد؛ بنابراین می‌توان آن را به سادگی از مخزن رسمی سیستم عامل خود نصب نمود.

در این مقاله قصد داریم به شما نشان دهیم، چگونه می‌توانید از دستور tar برای اهداف مختلف استفاده کنید.

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

[Install Tar on RHEL/CentOS/Fedora]
$ sudo yum install tar

[Install Tar on Fedora] 22 and later]
$ sudo dnf install tar

[Install Tar on Debian/Linux Mint/Ubuntu]
$ sudo apt-get install tar

[Install Tar on openSUSE]
$ sudo zypper in tar

[Install Tar on Mageia]
$ sudo urpmi tar

[Install Tar on Arch based distro]
$ sudo pacman -S tar

ساختار اصلی دستور tar به صورت زیر می‌باشد:

tar -[options] [/backup-location/backup-filename] /[webcontent-location]

 

گزینه‌های متداول در دستور tar در ادامه شرح داده شده است:

z: فایل پشتیبان را با فرمت "gzip" فشرده می‌کند تا اندازه آن کوچک شود.

c: یک بایگانی پشتیبان جدید ایجاد می‌کند.

v: فایل‌هایی را که پردازش شده اند، به همراه جزئیات لیست می‌نماید.

p: مجوز فایل‌های موجود در بایگانی را برای زمان پس از استخراج از حالت بایگانی حفظ می‌کند.

f: نام فایل بایگانی را مشخص می‌نماید.

x: فایل بایگانی را استخراج می‌کند.

t: محتوای فایل بایگانی را نمایش می‌دهد.

j: فایل را با فرمت bzip2 بایگانی می‌نماید.

r: فایل یا پوشه جدیدی را در فایل بایگانی موجود اضافه می‌کند.

W: محتوای یک فایل بایگانی را وارسی می‌نماید.

P: فایل پشتیبان را با “present umask” فشرده می‌کند.

C: مسیر استخراج فایل بایگانی را تعیین می‌نماید.

wildcards: گروهی از فایل‌ها را از فایل بایگانی استخراج می‌کند.

 

این مطلب نیز ممکن است برای شما مفید باشد: چگونه خطای stdin: not in gzip format را حل کنیم؟

 

1) نحوه ایجاد فایل بایگانی tar

در مثال زیر، از کلیه محتوای دایرکتوری 2daygeek در فایل 2daygeek-backup-17-Dec-2013.tar پشتیبان تهیه شده و فایل پشتیبان در دایرکتوری /backup/site-backup/ ذخیره می‌شود.

tar -cvf /backup/site-backup/2daygeek-backup-17-Dec-2013.tar /home/2daygeek

/home/2daygeek/
/home/2daygeek/etc/
/home/2daygeek/.bashrc
/home/2daygeekc/public_html/
/home/2daygeekc/public_html/captca/CaptchaSecurityImages.php
/home/2daygeekc/public_html/captca/form.php
/home/2daygeekc/public_html/captca/monofont.ttf
/home/2daygeekc/public_html/captca/error_log
/home/2daygeekc/public_html/colorlover.php
/home/2daygeekc/public_html/userfunctions.php
/home/2daygeekc/public_html/.htaccess

 

2) نحوه ایجاد فایل بایگانی tar.gz

مثال زیر، از کلیه محتوای دایرکتوری 2daygeek با فرمت فشرده gzip (گزینه z باعث می‌شود که سایز tar کوچک شود) در فایل 2daygeek-backup-17-Dec-2013.tar.gz پشتیبان تهیه کرده و فایل پشتیبان را در دایرکتوری /backup/site-backup/ ذخیره می‌نماید.

# tar -zcvf /backup/site-backup/2daygeek-backup-17-Dec-2013.tar.gz /home/2daygeek
/home/2daygeek/
/home/2daygeek/etc/
/home/2daygeek/.bashrc
/home/2daygeekc/public_html/
/home/2daygeekc/public_html/captca/CaptchaSecurityImages.php
/home/2daygeekc/public_html/captca/form.php
/home/2daygeekc/public_html/captca/monofont.ttf
/home/2daygeekc/public_html/captca/error_log
/home/2daygeekc/public_html/colorlover.php
/home/2daygeekc/public_html/userfunctions.php
/home/2daygeekc/public_html/.htaccess

 

3) نحوه ایجاد فایل بایگانی tar.bz2

در مثال زیر، از کلیه محتوای دایرکتوری 2daygeek با قالب فشرده‌سازی bzip2 (گزینه j اندازه tar را کوچک می‌کند. این روش در مقایسه با فشرده‌سازی gzip بسیار بهتر است) در فایل 2daygeek-backup-17-Dec-2013.tar.gz نسخه پشتیبان تهیه کرده و فایل پشتیبان را در دایرکتوری /backup/site-backup/ ذخیره می‌نماید.

# tar -jcvf /backup/site-backup/2daygeek-backup-17-Dec-2013.tar.bz2 /home/2daygeek
/home/2daygeek/
/home/2daygeek/etc/
/home/2daygeek/.bashrc
/home/2daygeekc/public_html/
/home/2daygeekc/public_html/2nd_feb usernameCheck.php
/home/2daygeekc/public_html/captca/
/home/2daygeekc/public_html/captca/CaptchaSecurityImages.php
/home/2daygeekc/public_html/captca/form.php
/home/2daygeekc/public_html/captca/monofont.ttf
/home/2daygeekc/public_html/captca/error_log
/home/2daygeekc/public_html/colorlover.php
/home/2daygeekc/public_html/userfunctions.php
/home/2daygeekc/public_html/.htaccess

خروجی:

تا اینجا سه قالب بایگانی tar ،tar.gz و tar.bz2 ایجاد کرده و در /backup/site-backup/ قرار داده ایم. در خروجی زیر تفاوت این فرمت‌ها را بهتر درک خواهیم کرد.

در خروجی زیر تفاوت‌های بسیاری در قالب بایگانی tar.bz2. در مقایسه با دیگر قالب‌ها قابل مشاهده است. bzip2 یک روش فشرده‌سازی داده با کیفیت بالا است. این روش به طور معمول فایل‌ها را تا 10 الی 15 درصد با کیفیت‌تر از سایر روش‌ها فشرده‌سازی می‌نماید.

# ll -h
total 72M
drwxr-xr-x 2 root root 4.0K Dec 17 05:57 ./
drwxr-xr-x 3 root root 4.0K Dec 17 05:28 ../
-rw-r--r-- 1 root root  58M Dec 17 05:33 2daygeek-backup-17-Dec-2013.tar
-rw-r--r-- 1 root root 5.4M Dec 17 05:57 2daygeek-backup-17-Dec-2013.tar.bz2
-rw-r--r-- 1 root root 8.3M Dec 17 05:48 2daygeek-backup-17-Dec-2013.tar.gz

 

4) نمایش محتوای فایل بایگانی tar.bz2

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

 tar -jtvf /backup/site-backup/2daygeek-backup-17-Dec-2013.tar.bz2


drwx--x--x 2daygeek/2daygeek 0 2013-12-14 01:00 home/2daygeek/
drwxr-x--- 2daygeek/mail     0 2013-04-29 06:15 home/2daygeek/etc/
-rw-r--r-- 2daygeek/2daygeek 124 2013-02-21 21:09 home/2daygeek/.bashrc
drwxr-x--- 2daygeek/nobody     0 2013-09-25 09:07 home/2daygeekc/public_html/
-rw-r--r-- 2daygeek/2daygeek 52418 2013-04-29 08:29 home/2daygeekc/public_html/2nd_feb usernameCheck.php
drwxr-xr-x 2daygeek/2daygeek     0 2013-04-29 08:31 home/2daygeekc/public_html/captca/
-rw-r--r-- 2daygeek/2daygeek  2084 2013-04-29 08:31 home/2daygeekc/public_html/captca/CaptchaSecurityImages.php
-rw-r--r-- 2daygeek/2daygeek  1120 2013-04-29 08:31 home/2daygeekc/public_html/captca/form.php
-rw-r--r-- 2daygeek/2daygeek 41036 2013-04-29 08:31 home/2daygeekc/public_html/captca/monofont.ttf
-rw-r--r-- 2daygeek/2daygeek  4587 2013-04-29 08:31 home/2daygeekc/public_html/captca/error_log
-rw-r--r-- 2daygeek/2daygeek   710 2013-04-29 08:29 home/2daygeekc/public_html/colorlover.php
-rw-r--r-- 2daygeek/2daygeek  4730 2013-04-29 08:29 home/2daygeekc/public_html/userfunctions.php
-rw-r--r-- 2daygeek/2daygeek 17787 2013-09-25 07:37 home/2daygeekc/public_html/.htaccess
-rw-r--r-- 2daygeek/2daygeek   691 2013-04-29 08:29 home/2daygeekc/public_html/reddit.php

 

5) لیست محتوای فایل بایگانی tar.

اگر می‌خواهید لیست فایل‌ها و پوشه‌های موجود در فایل بایگانی tar. را بدون استخراج آن نمایش دهید، از دستور زیر استفاده نمایید.

tar -tvf /backup/site-backup/2daygeek-backup-17-Dec-2013.tar


drwx--x--x 2daygeek/2daygeek 0 2013-12-14 01:00 home/2daygeek/
drwxr-x--- 2daygeek/mail     0 2013-04-29 06:15 home/2daygeek/etc/
-rw-r--r-- 2daygeek/2daygeek 124 2013-02-21 21:09 home/2daygeek/.bashrc
drwxr-x--- 2daygeek/nobody     0 2013-09-25 09:07 home/2daygeekc/public_html/
-rw-r--r-- 2daygeek/2daygeek 52418 2013-04-29 08:29 home/2daygeekc/public_html/2nd_feb usernameCheck.php
drwxr-xr-x 2daygeek/2daygeek     0 2013-04-29 08:31 home/2daygeekc/public_html/captca/
-rw-r--r-- 2daygeek/2daygeek  2084 2013-04-29 08:31 home/2daygeekc/public_html/captca/CaptchaSecurityImages.php
-rw-r--r-- 2daygeek/2daygeek  1120 2013-04-29 08:31 home/2daygeekc/public_html/captca/form.php
-rw-r--r-- 2daygeek/2daygeek 41036 2013-04-29 08:31 home/2daygeekc/public_html/captca/monofont.ttf
-rw-r--r-- 2daygeek/2daygeek  4587 2013-04-29 08:31 home/2daygeekc/public_html/captca/error_log
-rw-r--r-- 2daygeek/2daygeek   710 2013-04-29 08:29 home/2daygeekc/public_html/colorlover.php
-rw-r--r-- 2daygeek/2daygeek  4730 2013-04-29 08:29 home/2daygeekc/public_html/userfunctions.php
-rw-r--r-- 2daygeek/2daygeek 17787 2013-09-25 07:37 home/2daygeekc/public_html/.htaccess
-rw-r--r-- 2daygeek/2daygeek   691 2013-04-29 08:29 home/2daygeekc/public_html/reddit.php

 

6) لیست محتوای فایل بایگانی tar.gz

اگر می‌خواهید لیست فایل‌ها و پوشه‌های موجود در فایل بایگانی tar.gz. را بدون استخراج آن نمایش دهید، از دستور زیر استفاده کنید.

tar -ztvf /backup/site-backup/2daygeek-backup-17-Dec-2013.tar.gz


drwx--x--x 2daygeek/2daygeek 0 2013-12-14 01:00 home/2daygeek/
drwxr-x--- 2daygeek/mail     0 2013-04-29 06:15 home/2daygeek/etc/
-rw-r--r-- 2daygeek/2daygeek 124 2013-02-21 21:09 home/2daygeek/.bashrc
drwxr-x--- 2daygeek/nobody     0 2013-09-25 09:07 home/2daygeekc/public_html/
-rw-r--r-- 2daygeek/2daygeek 52418 2013-04-29 08:29 home/2daygeekc/public_html/2nd_feb usernameCheck.php
drwxr-xr-x 2daygeek/2daygeek     0 2013-04-29 08:31 home/2daygeekc/public_html/captca/
-rw-r--r-- 2daygeek/2daygeek  2084 2013-04-29 08:31 home/2daygeekc/public_html/captca/CaptchaSecurityImages.php
-rw-r--r-- 2daygeek/2daygeek  1120 2013-04-29 08:31 home/2daygeekc/public_html/captca/form.php
-rw-r--r-- 2daygeek/2daygeek 41036 2013-04-29 08:31 home/2daygeekc/public_html/captca/monofont.ttf
-rw-r--r-- 2daygeek/2daygeek  4587 2013-04-29 08:31 home/2daygeekc/public_html/captca/error_log
-rw-r--r-- 2daygeek/2daygeek   710 2013-04-29 08:29 home/2daygeekc/public_html/colorlover.php
-rw-r--r-- 2daygeek/2daygeek  4730 2013-04-29 08:29 home/2daygeekc/public_html/userfunctions.php
-rw-r--r-- 2daygeek/2daygeek 17787 2013-09-25 07:37 home/2daygeekc/public_html/.htaccess
-rw-r--r-- 2daygeek/2daygeek   691 2013-04-29 08:29 home/2daygeekc/public_html/reddit.php

 

این مطلب نیز ممکن است برای شما مفید باشد: فشرده سازی فایل ها با استفاده از gzip

 

7) لیست محتوای فایل بایگانی tbz.

اگر می‌خواهید لیست فایل‌ها و پوشه‌های موجود در فایل بایگانی tbz. را بدون استخراج آن نمایش دهید، از دستور زیر استفاده کنید.

tar -jtvf /backup/site-backup/2daygeek-backup-17-Dec-2013.tbz


drwx--x--x 2daygeek/2daygeek 0 2013-12-14 01:00 home/2daygeek/
drwxr-x--- 2daygeek/mail     0 2013-04-29 06:15 home/2daygeek/etc/
-rw-r--r-- 2daygeek/2daygeek 124 2013-02-21 21:09 home/2daygeek/.bashrc
drwxr-x--- 2daygeek/nobody     0 2013-09-25 09:07 home/2daygeekc/public_html/
-rw-r--r-- 2daygeek/2daygeek 52418 2013-04-29 08:29 home/2daygeekc/public_html/2nd_feb usernameCheck.php
drwxr-xr-x 2daygeek/2daygeek     0 2013-04-29 08:31 home/2daygeekc/public_html/captca/
-rw-r--r-- 2daygeek/2daygeek  2084 2013-04-29 08:31 home/2daygeekc/public_html/captca/CaptchaSecurityImages.php
-rw-r--r-- 2daygeek/2daygeek  1120 2013-04-29 08:31 home/2daygeekc/public_html/captca/form.php
-rw-r--r-- 2daygeek/2daygeek 41036 2013-04-29 08:31 home/2daygeekc/public_html/captca/monofont.ttf
-rw-r--r-- 2daygeek/2daygeek  4587 2013-04-29 08:31 home/2daygeekc/public_html/captca/error_log
-rw-r--r-- 2daygeek/2daygeek   710 2013-04-29 08:29 home/2daygeekc/public_html/colorlover.php
-rw-r--r-- 2daygeek/2daygeek  4730 2013-04-29 08:29 home/2daygeekc/public_html/userfunctions.php
-rw-r--r-- 2daygeek/2daygeek 17787 2013-09-25 07:37 home/2daygeekc/public_html/.htaccess
-rw-r--r-- 2daygeek/2daygeek   691 2013-04-29 08:29 home/2daygeekc/public_html/reddit.php

 

8) نحوه ایجاد فایل بایگانی tbz. با مجوز

در مثال زیر، از کل محتوای دایرکتوری 2daygeek با مجوز User-ID & Group-ID و فرمت فشرده‌سازی bzip2. (گزینه j باعث کوچک شدن اندازه tar می‌شود) در فایل 2daygeek-backup-17-Dec-2013.tbz نسخه پشتیبان گرفته شده و فایل پشتیبان در دایرکتوری /backup/site-backup/ ذخیره می‌شود.

tar -jcvpf /backup/site-backup/2daygeek-backup-17-Dec-2013.tbz /home/2daygeek


/home/2daygeek/
/home/2daygeek/etc/
/home/2daygeek/.bashrc
/home/2daygeekc/public_html/
/home/2daygeekc/public_html/2nd_feb usernameCheck.php
/home/2daygeekc/public_html/captca/
/home/2daygeekc/public_html/captca/CaptchaSecurityImages.php
/home/2daygeekc/public_html/captca/form.php
/home/2daygeekc/public_html/captca/monofont.ttf
/home/2daygeekc/public_html/captca/error_log
/home/2daygeekc/public_html/colorlover.php
/home/2daygeekc/public_html/userfunctions.php
/home/2daygeekc/public_html/.htaccess

 

9) افزودن فایل‌ها و دایرکتوری‌ها به فایل بایگانی موجود

برای اضافه کردن فایل‌ها و پوشه‌های جدید به فایل بایگانی موجود، از مثال زیر استفاده کنید که در آن از گزینه r- برای افزودن فایل‌ها استفاده شده است. در این مثال، می‌خواهیم فایل magesh.html و دایرکتوری mageshm را اضافه کنیم.

tar -rvf /backup/site-backup/2daygeek-backup-17-Dec-2013.tar magesh.html mageshm

توجه داشته باشید، نمی‌توانید فایل یا دایرکتوری‌ها را به یک بایگانی فشرده شده مانند، tar.gz و tar.bz2 اضافه کنید. اگر اصرار به اضافه کردن داشته باشید، با پیام خطای زیر رو به رو می‌شوید.

tar -jrvf /backup/site-backup/2daygeek-backup-23-nov-2013.tar.bz2 magesh.html
tar: Cannot update compressed archives

برای اطلاعات بیشتر از "tar-help" یا "tar -usage" استفاده نمایید.

 

10) استخراج فایل بایگانی tar

برای استخراج فایل بایگانی tar. از مثال زیر استفاده کنید. در اینجا برای استخراج فایل بایگانی tar از گزینه x- استفاده شده است.

اگر می‌خواهید فایل بایگانی tar را در هر مکان خاصی استخراج نمایید، از همان فرمت زیر استفاده کرده و مسیر home/magesh/2daygeek/ را به مسیر دلخواه خود تغییر دهید.

برای استخراج فایل بایگانی در دایرکتوری فعلی، از همان دستور زیر و گزینه c- بدون مسیر مقصد home/magesh/2daygeek/ استفاده کنید.

tar -xvf 2daygeek-backup-17-Dec-2013.tar -C /home/magesh/2daygeek


home/2daygeek/
home/2daygeek/etc/
home/2daygeek/.bashrc
home/2daygeekc/public_html/
home/2daygeekc/public_html/2nd_feb usernameCheck.php
home/2daygeekc/public_html/captca/
home/2daygeekc/public_html/captca/CaptchaSecurityImages.php
home/2daygeekc/public_html/captca/form.php
home/2daygeekc/public_html/captca/monofont.ttf
home/2daygeekc/public_html/captca/error_log
home/2daygeekc/public_html/colorlover.php
home/2daygeekc/public_html/userfunctions.php
home/2daygeekc/public_html/.htaccess

 

11) استخراج فایل بایگانی tar.gz

برای استخراج فایل بایگانی tar.gz. از مثال زیر استفاده کنید. در اینجا برای استخراج فایل بایگانی tar از گزینه x- استفاده شده است.

اگر می‌خواهید فایل بایگانی tar را در هر مکان خاصی استخراج کنید، از همان فرمت زیر استفاده کنید؛ ولی مسیر home/magesh/2daygeek/ را به مسیر مورد نظر خود تغییر دهید.

برای استخراج فایل بایگانی در دایرکتوری کنونی، از دستور زیر و گزینه c- بدون مسیر مقصد home/magesh/2daygeek/ استفاده کنید.

tar -xzvf 2daygeek-backup-17-Dec-2013.tar.gz -C /home/magesh/2daygeek


home/2daygeek/
home/2daygeek/etc/
home/2daygeek/.bashrc
home/2daygeekc/public_html/
home/2daygeekc/public_html/2nd_feb usernameCheck.php
home/2daygeekc/public_html/captca/
home/2daygeekc/public_html/captca/CaptchaSecurityImages.php
home/2daygeekc/public_html/captca/form.php
home/2daygeekc/public_html/captca/monofont.ttf
home/2daygeekc/public_html/captca/error_log
home/2daygeekc/public_html/colorlover.php
home/2daygeekc/public_html/userfunctions.php
home/2daygeekc/public_html/.htaccess

 

12) استخراج فایل بایگانی tar.bz2

برای استخراج فایل بایگانی tar.bz2. از مثال زیر استفاده کنید. در اینجا برای استخراج فایل بایگانی tar از گزینه x- استفاده شده است.

اگر می‌خواهید فایل بایگانی tar را در هر مکان خاصی استخراج کنید، از فرمت زیر استفاده کنید و مسیر home/magesh/2daygeek/ را به مسیر مورد نظر خود تغییر دهید.

برای استخراج فایل بایگانی در دایرکتوری فعلی، از دستور زیر به همراه گزینه c-؛ ولی بدون مسیر مقصد home/magesh/2daygeek/ استفاده کنید.

tar -xjvf 2daygeek-backup-17-Dec-2013.tar.bz2 -C /home/magesh/2daygeek


home/2daygeek/
home/2daygeek/etc/
home/2daygeek/.bashrc
home/2daygeekc/public_html/
home/2daygeekc/public_html/2nd_feb usernameCheck.php
home/2daygeekc/public_html/captca/
home/2daygeekc/public_html/captca/CaptchaSecurityImages.php
home/2daygeekc/public_html/captca/form.php
home/2daygeekc/public_html/captca/monofont.ttf
home/2daygeekc/public_html/captca/error_log
home/2daygeekc/public_html/colorlover.php
home/2daygeekc/public_html/userfunctions.php
home/2daygeekc/public_html/.htaccess

 

این مطلب نیز ممکن است برای شما مفید باشد: چگونه فایل های gz را باز کنم؟

 

13) استخراج یک فایل از فایل بایگانی tar.

شاید در مواقعی شما بخواهید فقط یک فایل خاصی را از فایل بایگانی tar استخراج نمایید، برای این موارد می‌توانید از مثال زیر استفاده کرده و به جای magesh.html نام فایل خود را قرار دهید.

tar -xvf 2daygeek-backup-17-Dec-2013.tar magesh.html

خروجی:

همانطور که در شکل زیر مشاهده می‌کنید، فایل magesh.html از فایل بایگانی tar استخراج و در همان مکان ذخیره شده است.

 ll -h


total 81M
drwxr-xr-x 2 root     root     4.0K Dec 17 07:22 ./
drwxr-xr-x 3 root     root     4.0K Dec 17 05:28 ../
-rw-r--r-- 1 root     root      58M Dec 17 06:33 2daygeek-backup-17-Dec-2013.tar
-rw-r--r-- 1 root     root     7.4M Dec 17 05:57 2daygeek-backup-17-Dec-2013.tar.bz2
-rw-r--r-- 1 root     root     8.3M Dec 17 05:48 2daygeek-backup-17-Dec-2013.tar.gz
-rw-r--r-- 1 root     root     7.4M Dec 17 06:09 2daygeek-backup-17-Dec-2013.tbz
-rw-r--r-- 1 magesh magesh     53 Dec 17 06:29 magesh.html

 

14) استخراج یک فایل از زیردایرکتوری فایل بایگانی tar

شاید در مواقعی شما بخواهید، فقط فایل خاصی را از فایل بایگانی tar استخراج کنید. در این صورت می‌توانید از مثال زیر استفاده کرده و نام فایل خود را به جای index.html قرار دهید.

tar --extract --file=2daygeek-backup-17-Dec-2013.tar /home/2daygeek/tmp/webalizerftp/index.html

 

15) استخراج چندین فایل از فایل بایگانی tar

نه تنها یک فایل، بلکه بیش از یک فایل نیز از فایل بایگانی tar قابل استخراج هستند. بدین منظور می‌توان از مثال زیر استفاده کرده و نام فایل خود را به جای "magesh.html" "ramesh.html" قرار دهید.

مثال زیر فایل magesh.html & ramesh.html را از فایل بایگانی tar. استخراج می‌کند.

tar -xvf 2daygeek-backup-17-Dec-2013.tar "magesh.html" "ramesh.html"

magesh.html
ramesh.html

خروجی:

همانطور که مشاهده می‌کنید، فایل‌های magesh.html و ramesh.html از بایگانی tar استخراج و در همان مکان ذخیره شده است.

# ll -h
total 81M
drwxr-xr-x 2 root     root     4.0K Dec 17 08:35 ./
drwxr-xr-x 3 root     root     4.0K Dec 17 05:28 ../
-rw-r--r-- 1 root     root      58M Dec 17 08:33 2daygeek-backup-17-Dec-2013.tar
-rw-r--r-- 1 root     root     7.4M Dec 17 05:57 2daygeek-backup-17-Dec-2013.tar.bz2
-rw-r--r-- 1 root     root     8.3M Dec 17 05:48 2daygeek-backup-17-Dec-2013.tar.gz
-rw-r--r-- 1 root     root     7.4M Dec 17 06:09 2daygeek-backup-17-Dec-2013.tbz
-rw-r--r-- 1 magesh magesh       53 Dec 17 06:29 magesh.html
-rw-r--r-- 1 magesh magesh       17 Dec 17 08:32 ramesh.html

 

16) استخراج گروهی از فایل‌ها با استفاده از Wildcard

شاید در مواردی بخواهید گروهی از فایل‌ها را از فایل بایگانی tar استخراج کنید. در چنین مورادی می‌توانید از مثال زیر استفاده کرده و پسوند فایل مورد نظر خود را جایگزین html. نمایید.

در مثال زیر می‌خواهیم گروهی از فایل‌ها را که با الگوی html. مطابقت دارد از فایل بایگانی tar استخراج کنیم.

 tar -xvf 2daygeek-backup-17-Dec-2013.tar --wildcards '*.html'

home/2daygeekc/public_html/37.99.html
home/2daygeekc/public_html/57.99.html
home/2daygeek/tmp/analog/11.html
home/2daygeek/tmp/analog/5.html
home/2daygeek/tmp/analog/12.html
home/2daygeek/tmp/analog/9.html
home/2daygeek/tmp/analog/10.html
magesh.html
ramesh.html

 

17) نحوه ایجاد فایل بایگانی tar.gz و حذف یک دایرکتوری خاص

اگر برای یک دایرکتوری نخواهید از هیچ یک از فایل‌های آن (به عنوان مثال فایل‌های ویدیویی) نسخه پشتیبان تهیه کنید، می‌توانید آن دایرکتوری را حذف نمایید. بدین منظور دایرکتوری مورد نظر را با استفاده از گزینه exclude-- ذکر کرده و دایرکتوری خود را به جای /home/2daygeek/demo قرار دهید و سپس اطلاعات مورد نیاز را نیز اضافه نمایید.

در مثال زیر می‌خواهیم کل دایرکتوری demo را حذف کنیم و سپس بقیه فایل‌ها و پوشه‌ها را بایگانی نماییم.

tar --exclude=’/home/2daygeek/demo’ -zcvpf /backup/site-backup/2daygeek-backup-17-Dec-2013.tar.gz


/home/2daygeek
/home/2daygeek/
/home/2daygeek/etc/
/home/2daygeek/.bashrc
/home/2daygeekc/public_html/
/home/2daygeekc/public_html/2nd_feb usernameCheck.php
/home/2daygeekc/public_html/captca/
/home/2daygeekc/public_html/captca/CaptchaSecurityImages.php
/home/2daygeekc/public_html/captca/form.php
/home/2daygeekc/public_html/captca/monofont.ttf
/home/2daygeekc/public_html/captca/error_log
/home/2daygeekc/public_html/colorlover.php
/home/2daygeekc/public_html/userfunctions.php
/home/2daygeekc/public_html/.htaccess

 

18) نحوه ایجاد فایل بایگانی tar.gz و حذف گروهی از فایل‌ها

اگر نمی‌خواهید از فایل‌هایی مانند فایل‌های mp3. و avi. نسخه پشتیبان تهیه نمایید، می‌توانید گروه فایل‌ها را از هر دایرکتوری حذف نمایید. بدین منظور نام آن دایرکتوری را با پسوند فایل مورد نظر ذکر کرده و با کمک گزینه exclude-- آن‌ها را حذف نمایید. سپس به جای home/2daygeek/demo دایرکتوری خود را جایگزین کرده و اطلاعات لازم را نیز اضافه نمایید.

در مثال زیر می‌خواهیم فایل‌های mp3 & .avi را از فهرست demo حذف کنیم و سپس سایر فایل‌ها و پوشه‌ها را بایگانی نماییم.

 tar --exclude=’/home/2daygeek/demo/*.avi’ –exclude=’/home/2daygeek/demo/*.mp3' -zcvpf /backup

/site-backup/2daygeek-backup-23-nov-2013.tar.gz /home/2daygeek
/home/2daygeek/
/home/2daygeek/etc/
/home/2daygeek/.bashrc
/home/2daygeekc/public_html/
/home/2daygeekc/public_html/2nd_feb usernameCheck.php
/home/2daygeekc/public_html/captca/
/home/2daygeekc/public_html/captca/CaptchaSecurityImages.php
/home/2daygeekc/public_html/captca/form.php
/home/2daygeekc/public_html/captca/monofont.ttf
/home/2daygeekc/public_html/captca/error_log
/home/2daygeekc/public_html/colorlover.php
/home/2daygeekc/public_html/userfunctions.php
/home/2daygeekc/public_html/.htaccess

 

19) نحوه تأیید فایل بایگانی tar

شما می‌توانید فایل بایگانی tar ایجاد شده توسط خود را با استفاده از گزینه w- تأیید کنید، تا اعتبارسنجی نمایید که آیا به درستی ایجاد شده است یا خیر. توجه داشته باشید که فایل‌های بایگانی tar.gz و tar.bz2 را نمی‌توان اعتبارسنجی کرد و در این صورت با یک پیام خطا روبه‌رو می‌شوید.

 tar tvfW 2daygeek-backup-17-Dec-2013.tar


tar: This does not look like a tar archive
tar: Skipping to next header
Verify ---------- 505/505       52418 1970-01-01 01:00 home/2daygeekc/public_html/2nd_feb usernameCheck.php
tar: home/2daygeekc/public_html/2nd_feb usernameCheck.php: Warning: Cannot stat: No such file or directory
Verify d--------- 505/505           0 1970-01-01 01:00 home/2daygeekc/public_html/captca/
tar: home/2daygeekc/public_html/captca: Warning: Cannot stat: No such file or directory
Verify ---------- 505/505        2084 1970-01-01 01:00 home/2daygeekc/public_html/captca/CaptchaSecurityImages.php
tar: home/2daygeekc/public_html/captca/CaptchaSecurityImages.php: Warning: Cannot stat: No such file or directory
Verify ---------- 505/505        1120 1970-01-01 01:00 home/2daygeekc/public_html/captca/form.php
tar: home/2daygeekc/public_html/captca/form.php: Warning: Cannot stat: No such file or directory
Verify ---------- 505/505       41036 1970-01-01 01:00 home/2daygeekc/public_html/captca/monofont.ttf
tar: home/2daygeekc/public_html/captca/monofont.ttf: Warning: Cannot stat: No such file or directory
Verify ---------- 505/505        4587 1970-01-01 01:00 home/2daygeekc/public_html/captca/error_log

 

20) نحوه بررسی اندازه فایل‌های بایگانی tar ،tar.gz و tar.bz2

برای بررسی اندازه هر فایل بایگانی tar ،tar.gz و tar.bz2 از دستور زیر استفاده کنید.

root@2daygeek [/backup/site-backup]# tar -czf - 2daygeek-backup-17-Dec-2013.tar | wc -c
8657681

root@2daygeek [/backup/site-backup]# tar -czf - 2daygeek-backup-17-Dec-2013.tar.gz | wc -c
8276311

root@2daygeek [/backup/site-backup]# tar -czf - 2daygeek-backup-17-Dec-2013.tar.bz2 | wc -c
7695961

 

 

منبع:

2daygeek