یکی از پرکاربردترین دستورات سرور لینوکس، دستور tar (Tape Archiver) است که به ایجاد، استخراج و فهرست کردن محتویات کمک میکند. این دستور با گزینههای مختلفی نشان داده میشود که هرکدام از آنها مفهوم جداگانهای دارند، اما بهطور کلی طرز کار با آن بسیار ساده است. در این مطلب، آموزش استفاده از دستور tar در لینوکس پیشرفته را مطالعه میکنید. پس از خواندن این مطلب ایجاد فایل آرشیو با دستور tar برای شما آسان میشود.
دستور tar چیست؟
دستور tar در لینوکس به مجموعهای از دستورات در این سیستم گفته میشود که برای فشردهسازی فایلها در آرشیو کاربرد دارند. از این دستور برای استخراج، نگهداری یا تغییر آرشیوهای tar هم استفاده میشود. این آرشیوها چندین فایل یا فهرست را در یک پرونده ترکیب میکنند. البته، این آرشیوها حتما فایلها را فشرده نمیکنند، مگر آنکه دستورات لازم در آنها اجرا شود. در حالت کلی دستور tar نوعی دستور ساخت پوشه در لینوکس است.
دستور کلی دستور tar بهصورت زیر است:
tar <operation mode> <option(s)> <archive> <file(s) or location(s)>
operation mode نشان میدهد که کدام عملیات روی فایلها اجرا میشود، برای مثال عملیات ایجاد، استخراج و… . در هر دستور فقط امکان اجرای یک عملیات وجود دارد. Option حالت عملیات را تغییر میدهد، در انتخاب این گزینهها هیچ محدودیتی وجود ندارد. Archive نام و پسوند فایل است.
معرفی انواع دستورات tar لینوکس
همانطور که گفتیم شما در استفاده از دستور tar در لینوکس با گزینههای مختلفی مواجه میشوید که هرکدام از آنها مفهوم جداگانهای دارند. از آنجایی که این گزینهها کاربرد زیادی دارند بهتر است با آنها آشنا شوید:
· -c: این گزینه وظیفه ایجاد بایگانی را برعهده دارد.
· -x: از این گزینه برای استخراج کردن آرشیوها استفاده میشود.
· -f: برای ایجاد آرشیو با نام داده شده کاربرد دارد.
· -t: این گزینه فایلهایی که در پرونده آرشیو وجود دارند را نشان داده و لیست میکند.
· -u: این دستور آرشیو شده و به فایلهایی که بهصورت آرشیو وجود دارند، اضافه میشود.
· -v: با استفاده از این دستور میتوانید اطلاعات شفاف را مشاهده کنید.
· -A: با این گزینه میتوان تمام فایلهای آرشیو شده را به یکدیگر متصل کرد.
· -z: استفاده از این گزینه فایل tar را توسط gzip فشرده میکند.
· -j: مانند دستور قبل، در این دستور فایل tar با استفاده از bzip2 فشرده میشود.
· -w: برای تایید کردن یک فایل آرشیو کاربرد دارد.
· -r: با استفاده از این گزینه میتوان فایل یا دایرکتوریهایی که در آرشیوها هستند را اضافه یا بهروزرسانی کرد.
استفاده از دستور tar در لینوکس چگونه است؟
دستور tar در لینوکس کاربردهای متفاوتی دارد. همچنین، بررسی مثالهای متعدد به شما کمک میکند تا تصور واضحی درمورد استفاده از دستور tar در لینوکس داشته باشید.
استخراج آرشیو در لینوکس
استفاده از دستور زیر برای استخراج یک آرشیو کاربرد دارد. در این دستور منظور از f کلمه File و منظور از v عبارت Verbos است.
tar xfv archive.tar
ایجاد فایل آرشیو با دستور tar
برای ایجاد فایل آرشیو با دستور tar کافیست این دستور را در پیش بگیرید:
tar -cf backup.tar Pictures Documents
همانطور که در مثال بالا مشاهده میکنید، بعد از دستور tar از پارامتر cf استفاده شده است، سپس نام فایل آرشیو را مشخص کرده و در آخر مسیر فایلهایی که میخواهید در فایل آرشیو باشند را مشخص کنید. در این مثال دستور tar از پوشههای Pictures و Document یک فایل آرشیو با نام backup.tar ایجاد میکند. همچنین، از پارامتر c برای ایجاد فایل آرشیو و از پارامتر f برای مشخص کردن نام فایل آرشیو استفاده میشود. درصورتیکه میخواهید فرآیند ایجاد فایل آرشیو را برای تمام فایلهایی که به آرشیو اضافه میشوند مشاهده کنید، پارامتر V را بهکار ببرید، مانند مثال زیر:
tar -cvf backup.tar Pictures Documents
نمایش محتوای فایل tar
برای مشاهده محتوای فایل Tar باید از پارامتر tf استفاده کنید. برای مشاهده جزئیات هر فایلی که در فایل tar قرار دارد باید پارامتر v را هم اضافه کنید، به این صورت:
tar -tvf backup.tar
افزودن فایل جدید به آرشیو
برای افزودن فایل جدید به آرشیو باید پارامتر r را در دستور tar به کار ببرید، برای مثال دستور زیر را مشاهده کنید، در این مثال فایل یا دایرکتوری newfile-dir به فایل آرشیو backup.tar اضافه میشود.
tar -rf backup.tar newfile-dir
ایجاد فایل آرشیو فشرده
برای این منظور باید از پارامتر z یا j استفاده شود. مانند مثال زیر که در آن از سه پوشه Download و Document و Desktop یک فایل آرشیو فشرده شده با پسوند gz ایجاد میشود. برای اکسترکت کردن آرشیو فشرده باید از پارامتر z در کنار پارامتر x استفاده کنید به این صورت:
tar -xzvf backup.tar.gz
حذف فایل پس از ایجاد
برای حذف کردن فایل بعد از آرشیو کردن آن از پارامتر –remove-files در آخر دستور استفاده کنید:
tar cf <archive> <file(s) or location(s)> –remove-files
برای مثال میتوانید با دایرکتوری فایل، آرشیو tar ایجاد کرده و سپس طی یک دستور آن را از دیسک خارج کنید:
tar cf files.tar files –remove-files
کنترل بازنویسی
کنترلهای بازنویسی Tar برای موقعیتهایی کاربرد دارد که نام فایلها در آرشیو با فایلهای موجود در دایرکتوری همپوشانی دارند. سه عمل بازنویسی عبارتند از:
1. بازنویسی فایلها در دایرکتوری:
tar xf <archive> <Optional file(s) or location(s)> –overwrite
2. بازنویسی نکردن فایلها در دایرکتوری:
tar xf <archive> <Optional file(s) or location(s)> –keep-old-files
3. استخراج فایلها تنها درصورتیکه از فایلهای موجود جدیدتر هستند:
tar xf <archive> <Optional file(s) or location(s)> –keep-newer-files
جستجوی فایل در آرشیو
دو روش در tar وجود دارد که با استفاده از آنها میتوان مکان یک محتوای خاص را مشخص کرد:
1. استفاده از گزینه -t برای فهرست کردن فایلها در آرشیو و برای مکانیابی فایلهای خاص مفید است. نام فایل (یا نامها) را بعد از دستور اضافه کنید به این صورت:
tar tf <archive> <file(s)>
برای استفاده از این روش لازم است که مسیر احتمالی رسیدن به فایل را بدانید.
2. از tar به همراه دستور grep استفاده کنید:
tar tf <archive> | grep <file(s)>
برای استفاده از این روش لازم نیست که مسیر احتمالی محتوا را بدانید.
البته یک روش سومی هم وجود دارد که برای جستجوی فایلها بهصورت چندتایی کاربرد دارد، از گزینه –wildcards برای مطابقت با چندین نمونه فایل استفاده کنید:
tar tf files.tar.gz –wildcards file/files5*.txt
مجوزها
برای کنترل مجوزهای فایل با tar هنگام استخراج آرشیو، دو روش وجود دارد:
1. حفظ مجوزهای اصلی: در این روش مجوزها همانطور که بودند باقی میمانند.
tar xf <archive name> –preserve-permissions
2. تغییر مجوزها به حالت پیش فرض umask: فایلها مجوزهای پیش فرض لینوکس را دریافت میکنند.
tar xf <archive name> –no-same-permissions
ترکیب آرشیوها
از گزینه –concatenate یا -A برای ترکیب چندین آرشیو استفاده کنید. دستور آن به این صورت است:
tar Af <archive to extend> <archive to extend with>
برای مثال، فایل files.tar موجود را با استفاده از دستور cp کپی کنید:
cp files.tar files_copy.tar
سپس دو بایگانی را به هم متصل کنید:
tar Af files.tar files_copy.tar
جمعبندی
با خواندن این مقاله، اکنون شما با نحوه استفاده از دستور tar در لینوکس آشنایی دارید. استفاده از این دستور برای ایجاد، پشتیبانگیری یا فشردهسازی فایلهایی که دیگر نیازی به آنها ندارید مفید است.
برخی از پرکاربردترین دستورهای tar را در این مقاله بیان کردیم، با این حال گزینههای مختلف دیگری هم وجود دارند که بیان نشدند. درصورتیکه برای ایجاد فایل آرشیو با دستور tar یا اجرای هر عملیات دیگری با مشکل مواجه هستید، برای ما بنویسید.
سوالات متداول
- برای ایجاد فایل آرشیو با دستور tar باید از چه پارامترهایی استفاده کنیم؟
برای ایجاد فایل آرشیو فشرده (Compressed) با دستور tar باید از پارامتر z و یا j استفاده کنید. در مثال زیر، سه پوشه Download و Document و Desktop به یک فایل آرشیو فشرده شده با پسوند gz تبدیل شدهاند.
tar -czvf backup.tar.gz Downloads Documents Desktop
- برای اینکه بتواند فایلهای آرشیو شده tar را به صورت Untar درآورد، چه دستوری نیاز است؟
برای untar کردن فایلهای آرشیوشده tar دستور زیر استفاده میشود:
tar -xvf public_html-14-09-12.tar
- برای غیر فشرده کردن آرشیو فایل tar.gz از چه دستوری استفاده میشود؟
از دستور زیر استفاده کنید تا بتوانید آرشیو فایل tar.gz را از حالت فشرده درآورید:
tar -xvf thumbnails-14-09-12.tar.gz
- برای غیر فشرده کردن آرشیو فایل tar.bz2 از چه اسکریپتی استفاده میشود؟
دستور زیر برای غیرفشرده کردن آرشیو فایل tar.bz2 کاربرد دارد.
tar -xvf videos-14-09-12.tar.bz2
- برای چک کردن سایز فایلهای آرشیو شده tar، tar.gz و tarbz2 از چه دستوری استفاده میشود؟
برای اینکه بتوانید سایز فایلهای آرشیو شده را مانند tar، tar.gz و tarbz2 را به دست آوردید، باید دستور زیر را دنبال کنید:
tar -czf – tecmint-14-09-12.tar | wc -c
12820480
# tar -czf – MyImages-14-09-12.tar.gz | wc -c
112640
# tar -czf – Phpfiles-org.tar.bz2 | wc -c
20480