📄 محتوای کامل
مقدمه
این tarدستور در لینوکس امکان بایگانی و فشردهسازی فایلها و دایرکتوریها را فراهم میکند. این دستور همچنین با نام tape archive( tar) شناخته میشود و چندین فایل را در یک فایل بایگانی واحد با .tarپسوندی که میتواند فشرده شود تا در فضای دیسک صرفهجویی شود و انتقال فایلها و پشتیبانگیریها سادهتر شود، ترکیب میکند.
این مقاله نحوه استفاده از این tarدستور در لینوکس را برای انجام وظایف بایگانی و فشردهسازی فایل توضیح میدهد.
tarسینتکس دستور
در زیر سینتکس دستور پایه آمده است tar:
$ tar [options] [archive-file] [file/directory]
در داخل دستور فوق، رفتار دستور [options]را تغییر میدهد tar، [archive-file]نام فایل آرشیو را مشخص میکند و [file/directory]فایلها یا دایرکتوریهایی را که باید در آرشیو گنجانده شوند، مشخص میکند.
tarگزینههای فرمان
| گزینه | توضیحات |
|---|---|
-c | یک آرشیو جدید ایجاد کنید. |
-x | استخراج فایلها از یک آرشیو. |
-v | حالت مفصل. نمایش پیشرفت در ترمینال. |
-f | نام فایل. نام فایل آرشیو را مشخص کنید. |
-z | بایگانی را با استفاده از gzip فشرده کنید. |
-j | بایگانی را با استفاده از bzip2 فشرده کنید. |
-J | فشردهسازی فایل با استفاده از xz. |
-t | فهرست کردن محتویات یک آرشیو. |
-r | فایلها را به آرشیو موجود اضافه کنید. |
-u | بهروزرسانی فایلها در یک بایگانی موجود. |
مثالهای عملی از tarفرمان
- یک آرشیو tar جدید ایجاد کنید. کنسولکپی
$ tar -cvf archive.tar file1.txt file2.txt directory/
دستور بالا یک فایل جدید ایجاد میکند
archive.tarکه شامل فایلfile1.txt،file2.txtو تمام محتویات درون آن استdirectory/.خروجی:
tarبا استفاده از Gzip یک آرشیو فشرده جدید ایجاد کنید . کنسولکپی$ tar -czvf archive.tar.gz file1.txt file2.txt directory/
دستور بالا یک فایل جدید ایجاد میکند
archive.tar.gzو فشردهسازی با استفاده از Gzip را فعال میکند.خروجی:
- استخراج فایلها از آرشیو tar. کنسولکپی
$ tar -xvf archive.tar
دستور بالا تمام فایلها را از
archive.tarفایل مورد نظر به دایرکتوری کاری شما استخراج میکند.خروجی:
- استخراج فایلها از یک
tarآرشیو فشرده. کنسولکپی$ tar -xzvf archive.tar.gz
دستور بالا تمام فایلها را از
archive.tar.gzفایل فشردهسازی به دایرکتوری کاری استخراج میکند.خروجی:
- فهرست کردن تمام محتویات یک آرشیو tar. کنسولکپی
$ tar -tvf archive.tar
دستور بالا تمام محتویات فایل را
archive.tarبدون استخراج فهرست میکند.خروجی:
tarبا استفاده از Bzip یک فایل فشرده ایجاد کنید . کنسولکپی$ tar -cjvf archive.tar.bz2 file1.txt file2.txt directory/
دستور بالا
archive.tar.bz2با استفاده از این ابزار، یک فایل فشرده جدید ایجاد میکندbzip2.خروجی:
- استخراج فایلها از
tarآرشیو Bzip کنسولکپی$ tar -xjvf archive.tar.bz2
دستور بالا تمام فایلها را از
archive.tar.bz2دایرکتوری کاری شما استخراج میکند.خروجی:
tarبا استفاده از فرمت فشردهسازی، یک آرشیو جدید ایجاد کنیدxzipped. کنسولکپی$ tar -cJvf archive.tar.xz file1.txt file2.txt directory/
دستور بالا
archive.tar.xzبا استفاده از xz یک فایل فشرده جدید ایجاد میکند.خروجی:
- استخراج فایلها از یک
xzippedفایل آرشیو. کنسولکپی$ tar -xJvf archive.tar.xz
دستور بالا فایلها را از
archive.tar.xzفایل اصلی به دایرکتوری کاری شما استخراج میکند.خروجی:
- فایلهای جدید را به یک بایگانی tar موجود اضافه کنید. کنسولکپی
$ tar -rvf archive.tar newfile
دستور بالا فایل را به آرشیو
newfileموجود اضافه میکند .tararchive.tarخروجی:
- بهروزرسانی فایلها در یک بایگانی tar موجود. کنسولکپی
$ tar -uvf archive.tar updatedfile
دستور بالا اگر
updatedfileفایل موجود درarchive.tarآرشیو جدیدتر از نسخه موجود باشد، آن را بهروزرسانی میکند.خروجی:
سناریوهای پیشرفته استفاده
- فایلها و دایرکتوریها را از
tarبایگانی حذف کنید. کنسولکپی$ tar --exclude='*.log' -cvf archive.tar directory/
دستور بالا یک
archive.tarفایل جدید ایجاد میکند که شامل همه فایلها به جز.logفایلهای موجود درdirectory/.خروجی:
- فشردهسازی و بایگانی فایلها در یک مکان دور. کنسولکپی
$ tar -czvf - directory/ | ssh user@remotehost "cat > /path/to/destination/archive.tar.gz"
دستور بالا
directory/آن را فشرده کرده وremotehostبا استفاده از SSH منتقل میکند.خروجی:
negarnovin_user@negarnovin:~$ tar -czvf - /home/negarnovin_user/dir1 | ssh [email protected] "cat > /home/negarnovin_user/dir2/archive.tar.gz" tar: Removing leading `/' from member names /home/negarnovin_user/dir1/ /home/negarnovin_user/dir1/file2.txt /home/negarnovin_user/dir1/file1.txt /home/negarnovin_user/dir1/file3.txt The authenticity of host '123.84.123.123 (123.84.123.123)' can't be established. ED25519 key fingerprint is SHA256:kfJi2tl589s4r3mdDLq32Ziksl1j5f2sXM6aUw. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes [email protected]'s password: negarnovin_user@negarnovin:~$ - استخراج یک فایل خاص از آرشیو tar. کنسولکپی
$ tar -xvf archive.tar path/to/file
دستور فوق
path/to/fileاز استخراج میشودarchive.tar.خروجی:
- صحت یک آرشیو tar را تأیید کنید. کنسولکپی
$ tar -tvf archive.tar > /dev/null
دستور فوق تمام محتویات فایل را فهرست کرده
archive.tarو خروجی را برای تأیید صحت فایل حذف میکند. - برای بایگانی فایلهای خاص
tarاز with استفاده کنید .findکنسولکپی$ find . -name "*.txt" -print0 | tar -cvf archive.tar --null -T -
دستور بالا تمام
.txtفایلها را پیدا کرده و آنها را درarchive.tarفایل بایگانی میکند.خروجی:
- استخراج فایلها در یک دایرکتوری خاص کنسولکپی
$ tar -xvf archive.tar -C /path/to/directory/
دستور بالا فایلها را از استخراج
archive.tarمیکند/path/to/directory/.خروجی:
- ایجاد یک آرشیو tar جدید که به چندین بخش تقسیم شده است کنسولکپی
$ tar -cvf - directory/ | split -b 5M - archive_part_
دستور بالا با استفاده از files from یک آرشیو tar جدید ایجاد میکند
directory/و آن را به چندین volume5 MBبرای هر فایل تقسیم میکند.خروجی:
نتیجه گیری
tarشما از این دستور برای بایگانی و فشردهسازی فایلها، مدیریت پشتیبانگیریها و بهینهسازی فضای ذخیرهسازی در سیستم خود استفاده کردهاید . برای مشاهده گزینههای بیشتر دستور، man tarدستور را اجرا کنید تا tarصفحه راهنما را مشاهده کنید.