پرش به محتوا

لینوکس مقدماتی/آرشیوسازی فایل‌ها

ویکی‎کتاب، کتابخانهٔ آزاد

آرشیو سازی(archiving) فایل‌ها به معنای آرشیو کردن چنیدن فایل ودایرکتوری به صورت یک فایل می‌باشد(بدون فشرده‌سازی). بنابراین اگر ۵ فایل ۱۰ مگابایتی را با هم آرشیو کنیم در نهایت خروجی یک فایل ۵۰ مگابایتی خواهد شد. عملیات آرشیو سازی ممکن است با فشرده‌سازی (compressing) نیز همراه باشد.

برنامه‌های مهم

Tar‌

[ویرایش]

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

برنامه‌ای برای فشرده‌سازی فایل‌ها.(آرشیوسازی نمی‌کند) شامل دو دستور gzip و gunzip است که از اولی برای فشرده‌سازی و دومی برای عملیات معکوس فشرده‌سازی استفاده ‌می‌شود.

برنامه‌ای است برای فشرده‌سازی فایل‌ها.(آرشیوسازی نمی‌کند) شامل دو دستور bzip2 و bunzip2 است که از اولی برای فشرده‌سازی و دومی برای عملیات معکوس فشرده‌سازی استفاده می‌شود.

مقایسه: Bzip2 از Gzip، برای فشرده‌سازی فایل‌های بزرگ مناسب‌تر است. ‌Bzip2 بهینه تر عمل می‌کند به عبارت دیگر فایل‌ها را نسبت به Gzip‌ فشرده‌تر می‌کند.

این برنامه‌ای است که در ویندوز نیز از آن استفاده می‌شود و بر خلاف موارد بالا هم عملیات آرشیوسازی و هم عملیات فشرده‌سازی را توأمان انجام می‌دهد.

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 [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

[ویرایش]
ایحاد
[ویرایش]

آرشیوسازی و فشرده‌سازی چند فایل

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

ایجاد
[ویرایش]

آرشیوسازی و فشرده‌سازی چند فایل

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 استفاده کنیم.