لینوکس مقدماتی/آرشیوسازی فایلها
آرشیو سازی(archiving) فایلها به معنای آرشیو کردن چنیدن فایل ودایرکتوری به صورت یک فایل میباشد(بدون فشردهسازی). بنابراین اگر ۵ فایل ۱۰ مگابایتی را با هم آرشیو کنیم در نهایت خروجی یک فایل ۵۰ مگابایتی خواهد شد. عملیات آرشیو سازی ممکن است با فشردهسازی (compressing) نیز همراه باشد.
برنامههای مهم
Tar
[ویرایش]برنامهای برای ایجاد فایل آرشیو از چندین فایل.این برنامه فقط آرشیو میسازد و عملیات فشردهسازی را انجام نمیدهد در حقیقت برای انجام عملیات فشرده سازی از برنامههای دیگر مثلا برنامههایی که در زیر خواهد آمد کمک میگیرد.
Gzip
[ویرایش]برنامهای برای فشردهسازی فایلها.(آرشیوسازی نمیکند) شامل دو دستور gzip و gunzip است که از اولی برای فشردهسازی و دومی برای عملیات معکوس فشردهسازی استفاده میشود.
Bzip2
[ویرایش]برنامهای است برای فشردهسازی فایلها.(آرشیوسازی نمیکند) شامل دو دستور bzip2 و bunzip2 است که از اولی برای فشردهسازی و دومی برای عملیات معکوس فشردهسازی استفاده میشود.
مقایسه: Bzip2 از Gzip، برای فشردهسازی فایلهای بزرگ مناسبتر است. Bzip2 بهینه تر عمل میکند به عبارت دیگر فایلها را نسبت به Gzip فشردهتر میکند.
zip
[ویرایش]این برنامهای است که در ویندوز نیز از آن استفاده میشود و بر خلاف موارد بالا هم عملیات آرشیوسازی و هم عملیات فشردهسازی را توأمان انجام میدهد.
zip و unzip
[ویرایش]ساختار
[ویرایش]zip [path1][path2(s)]
path1 : مسیری که میخواهیم نتیجهٔ عملیات زیپ در آنجا ذخیره شود.
path2 : مسیر فایل یا فایلها یا دیرکتوریهایی که میخواهیم آنها را فشردهسازی کنیم.(ممکن است نام چند فایل پشت سر هم آورده شود)
مثال:
فشردهسازی سه فایل با نام file1.txt و file2.txt و file3.txt در یک فایل fi.zip
#path1: fi.zip
#path2: file1.txt and file2.txt and file3.txt
user1@sadegh-VirtualBox:~/Desktop/arch_dir/test/files/text_files$ zip fi.zip file1.txt file2.txt file3.txt
مثال:
فشردهسازی دیرکتوری(باید از پرچم -r استفاده شود)
#-r : recursively
#path1: test/t.zip
#path2: files/
user1@sadegh-VirtualBox:~/Desktop/arch_dir$ zip -r test/t.zip files/
ساختار
unzip [path1]
path1 : مسیری که میخواهیم نتیجهٔ عملیات unzipدر آنجا ذخیره شود.
user1@sadegh-VirtualBox:~/Desktop/arch_dir/test$ unzip t.zip
bzip2 و bunzip2
[ویرایش]فشردهسازی فایل tar
[ویرایش]bzip2 files.tar
با اجرای دستور بالا فایل files.tar
با فایل files.tar.bz
جایگزین میشود.
از حالت فشرده در آوردن فایل فشرده شده با برنامهٔ bzip2
[ویرایش]bunzip2 files.tar.bz
با اجرای دستور بالا فایل files.tar.bz
با فایل files.tar
جایگزین میشود.
gzip و gunzip
[ویرایش]فشردهسازی فایل tar
[ویرایش]gzip files.tar
با اجرای دستور بالا فایل files.tar
با فایل files.tar.gz
جایگزین میشود.
از حالت فشرده در آوردن فایل فشرده شده با برنامهٔ bzip2
[ویرایش]gzip files.tar.gz
با اجرای دستور بالا فایل files.tar.gz
با فایل files.tar
جایگزین میشود.
Tar
[ویرایش]آرشیوسازی به همراه
ساختار
[ویرایش]tar [flags] [path1][path2]
[path1]
: آدرسی که میخواهیم نتیجهٔ عملیات آرشیوسازی در آن ذخیره شود.
[path2]
: آدرس دیرکتوری یا فایلی که میخواهیم آن را آرشیو کنیم.
[flags]
: پرچمهای این دستور را یا میتوان به صورت جدا(-c -v -f
) و یا سر هم(-cvf
) استفاده کرد مثل سایر دستورات ولی باید توجه داشت که پرچ -f
باید همیشه آخرین پرچم باشد.
نکته: همیشه باید پرچم -f
آخرین پرچم برای دستور tar باشد در غیر اینصورت با خطا مواجه خواهیم شد.
مثال پرچمهای درست:
tar -cvf
tar -vcf
tar -cf
مثال پرچمهای غلط(موارد زیر اشتباه هستند):
tar -cfv
tar -fcv
tar -fc
پرچمها
[ویرایش]-cf
: ایجاد فایل آرشیو create file (متشکل از دو پرچم: -c
و -f
)
-xf
: استخراج محتویات فایل آرشیو extract file (متشکل از دو پرچم: -x
و -f
)
-cvf
: همان عملیات -cf
به صورت verbose یعنی با بیان جزئیات عملیات برای کاربر(جزئیات عملیات در ترمینال چاپ میشود). متشکل از سه پرچم: -c
و -v
و-f
-xvf
: همان عملیات -xf
به صورت verbose یعنی با بیان جزئیات عملیات برای کاربر(جزئیات عملیات در ترمینال چاپ میشود) متشکل از سه پرچم: -x
و -v
و-f
مثال آرشیو کردن کردن یک دیرکتوری:
user1@sadegh-VirtualBox:~/Desktop$ tar -cf arch_dir/f.tar arch_dir/files/
در مثال فوق دیرکتوری files را آرشیو میکنیم و نام فایل آرشیو را f.tar میگذاریم.
مثال آرشیو کردن چند فایل:
user1@sadegh-VirtualBox:~/Desktop/arch_dir/files/text_files$ tar -cvf /home/user1/Desktop/f.tar file1.txt file2.txt file3.txt
در این مثال فایلهای file1.txt
و file2.txt
و file3.txt
در دیرکتوری فعلی قرار دارند آرشیو شده و فایل آرشیو حاصل در آدرس /home/user1/Desktop
با نام f.tar
ایجاد میشود.
مثال اسخراج محتویات فایل آرشیو:
user1@sadegh-VirtualBox:~/Desktop$ tar -xf arch_dir/f.tar
آرشیوسازی به همراه فشردهسازی همزمان با استفاده از bzip2 و gzip با استفاده از پرچمهای -j
و -z
[ویرایش]-z
[ویرایش]ایحاد
[ویرایش]آرشیوسازی و فشردهسازی چند فایل
user1@sadegh-VirtualBox:~/Desktop/arch_dir/files/text_files$ tar -cvzf result.tgz file1.txt file2.txt file3.txt pic.jpg
#میتونستیم از پرچم های زیر هم استفاده کنیم
#-vczf -zcvf -zvcf
#نکتهٔ مهم این است که باید پرچم
#-f
#حتما آخرین پرچم باشد
آرشیوسازی و فشردهسازی دیرکتوری
user1@sadegh-VirtualBox:~/Desktop/arch_dir/files/text_files$ tar -cvzf res.tgz test/
پسوند tgz برای فایل خروجی یعنی result.tgz فقط برای این است که کاربر عادی با دیدن فایل متوجه شود که برای استخراج محتویات این فایل باید از برنامهٔ gzip استفاده کند و ارزش دیگری ندارد.
یعنی میشد هر پسوند دیگری برای آن در نظر گرفت ولی استاندارد یا tgz و یا tar.gz است.
استخراج
[ویرایش]user1@sadegh-VirtualBox:~/Desktop/arch_dir/files/text_files/test$ tar -xvzf result.tgz
نکته: در پرچمهای -cvzf
و -xvzf
، باید پرچم -f
همیشه به عنوان آخرین پرچم قرار بگیرد ولی بقیهٔ پرچمها را میتوان جابهجا کرد مثلا -vzcf
یا ...
نکته: -cvzf
یعنی create verbosely gzip file
نکته: -xvzf
یعنی extract verbosely gzip file
نکته: همانطور که از تعریف -v
پیداست، این پرچم فقط به منظور نمایش جزئیات عملیات برای کاربر است بنابر این استفاده از آن ضروری نیست. یعنی -czf
یا -xzf
-j
[ویرایش]ایجاد
[ویرایش]آرشیوسازی و فشردهسازی چند فایل
user1@sadegh-VirtualBox:~/Desktop/arch_dir/files/text_files$ tar -cvjf result.tbz file1.txt file2.txt file3.txt pic.jpg
آرشیوسازی و فشردهسازی
user1@sadegh-VirtualBox:~/Desktop/arch_dir/files/text_files$ tar -cvjf res.tgz test/
استخراج
[ویرایش]user1@sadegh-VirtualBox:~/Desktop/arch_dir/files/text_files/test$ tar -xvjf result.tbz
نکته: در پرچمهای -cvjf
و -xvjf
، باید پرچم -f
همیشه به عنوان آخرین پرچم قرار بگیرد ولی بقیهٔ پرچمها را میتوان جابهجا کرد مثلا -vjcf
یا ...
نکته: -cvjf
یعنی create verbosely bzip2 file
نکته: -xvjf
یعنی extract verbosely bzip2 file
نکته: همانطور که از تعریف -v
پیداست، این پرچم فقط به منظور نمایش جزئیات عملیات برای کاربر است بنابر این استفاده از آن ضروری نیست. یعنی -cjf
یا -xjf
نکته: برای نامگذاری فایلهای فشرده شدهٔ tar با برنامهٔ bzip2 یا از نام tar.bz یا نام tbz استفاده میکنند.
نکته: برای نامگذاری فایلهای فشرده شدهٔ tar با برنامهٔ gzip یا از نام tar.gz یا نام tgz استفاده میکنند.
نکته: طبق قرداد نامگذاری ۸.۳ که به آن SFN نیز گفته میشود که مربوط به سیستمعامل داس و سیستم عامل ویندوز میباشد و هدف آن پسوند فایلها(File Extensions) ی کوتاه است، بهتر است که از tgz و tbz استفاده کنیم.