zip رایجترین فرمت بین فرمت های فشرده سازی فایل هاست که در تمامی سیستم های عامل بدون هیچ نرم افزار خاصی برای نصب قابل پشتیبانی است. اگر می خواهید فایل هایی را فشرده و بین تمامی سیستم های عامل انتقال دهید zip بهترین فرمت برای این کار است. در سیستم عامل های مبتنی بر یونیکس بصورت پیش فرض از فرمت zip پشتیبانی می شود. دستور های zip و unzip برای فشرده سازی و استخراج استفاده می شوند. برای شروع دستور های زیر برای خواندن help دستور ها استفاده کنید.
فشرده سازی فایل ها با zip :
شکل کلی زیر برای فشرده کردن فایل های درون یک دایرکتوری استفاده می شود.
اولین دستور به شکل */path/to/dir/ تمامی فایل های درون دایرکتوری dir را فشرده می کند ولی شکل path/to/dir/filename/ تنها یک فایل خاص را فشردهمی کند دومین دستور با استفاده از سوئیچ r- بصورت تمامی فایل ها و دایرکتوری های درون دایزکتوری dir را بصورت recursive یا بازگشتی فشرده می کند. تفاوت اولین دستور با دستور دوم در این است که در شکل اول فقط فایل های درون دایرکتوری dir فشرده می شوند ولی در شکل دوم به جر فایل های درون دایرکتوری dir بصورت سلسه مراتبی تمامی فایل های درون زیر دایزکتوری های درون دایرکتوری dir نیز کپی می شوند. برای مثال دو دستور زیر را اجرا کنید و در خروجی می بینید که فایل های درون یک زیر دایرکتوری به نام httpd که زیر دایرکتوری log است در حالت دوم نسز جز فایل فشرده شده خواهد بود در صورتی که در شکل اول انطور نیست و فقط فایل های درون دایرکتوری log جز فایل فشرده خواهتد بود.
10 سطح یا Level برای استفاده فشرده سازی با دستور zip وجود دارد. سطح 0 که فقط فایل ها را ذخیره یا آرشیو می کند و سطح 1 کمی حالت فشرده سازی دارد. سطح پیش فرض 6 است که اگر ننویسید سطح 6 استفاده می شود. کندترین سطح فشرده سازی 9 است. تفاوت آرشیو (سسطح 0) با فشرده سازی (سطح 6) در این است که در ارشیو کردن حجم فایل ها تغییر نمی کند و تنها فایل ها را در یک فایل zip ذخیره می شوند ولی فشرده سازی یعنی اینکه فایل ها را با حجم کمتری ذخیره کنیم. شکل کلی استفاده از سطح ها بصورت زیر است.
برای مثال دو دستور زیر را اجرا کنید و سپس با دستور ls -lh اندازه فایل های zip شده را مقایسه کنید. در خروجی خواهید دید حجم فایل آرشیو شده با سطح 0 بسیار بیشتر از بقیه است.
دستور زیرحجم تمامی فایل ها با پسوند zip. را نشان می دهد.
همانطور که می بینید حجم سطه 0 از همه بیشتر (آرشیو فایل ها) و حجم سطح 9 از همه کمتر (کندترین سطح فشرده سازی) است.
سوئیچ v- به معنی verbose وقتی دایرکتوری یا فایلی را فشرده می کنید یک سری اطلاعات کاملتر از فرایند را نشان می دهد.
استخراج فایل ها با unzip :
دستور unzip برای استخراج فایل ها استفاده می شود. شکل کلی استفاده از آن به صورت زیر است.
در دستور بالا فایل ها در دایرکتوری فعلی استخراج و ذخیره می شوند. با استفاده از سوئیچ d- فایل ها را یک دایرکتوری دیگر استخراج و ذخیره می کنیم.
برای فهرست کردن محتوای یک فایل zip بدون استخراج آن از شکل کلی زیر استفاده کنید.
سوئیچ v- به معنی verbose وقتی دایرکتوری یا فایلی را استخراج می کنید یک سری اطلاعات کاملتر از فرایند را نشان می دهد.
با سوئیچ t- صحت درستی داده های درون فایل تست می شوند.
ایجاد پسورد روی فایل zip با سوئیچ P- و به شکل کلی زیر امکان پذیر است.
بجای YOUR_PASSWORD پسورد دلخواه را قرار دهید. مشکل سوئیجP- این است که پسورد واضح و آشکار است برای اینکه یک اعلان برای ورود پسورد داده شود از سوئیچ e- استفاده کنید. شکل کلی بصورت زیر است.
پس از اجرای هر یک از فرمت های بالا اعلان ورود پسورد و تایید پسورد داده می شود.
وقتی می خواهید با دستور unzip یک فایل zip شده دارای پسورد را استخراج کنید یک اعلان برای ورود پسورد داده خواهد شد. اعلانی شبیه به زیر داده می شود.
اگر بخواهید محتوای یک فایل ZIP را در دایرکتوری که از قبل شامل همان اطلاعات است استخراج کنید پیغام هشدار دهنده زیر داده می شود که فایل های همنامی از قبل وجود دارند و با ورود y فایل های جدید جایگزین یا overwrite روی فایل های قبلی بشوند و با ورود n جلوگیری می شود. به ازای هر فایل مشابه در دایرکتوری و فایل zip اعلان داده خواهد شد که باید y یا n را برای overwrite شدن یا نشدن هر فایل انجام دهید.
و اگر می خواهید بدون هیچ پیامی تمامی فایل های جدید جایگزین فایل های قدیم شوند از سوئیچ o- به معنی overwrite استفاده کنید.
و اگر می خواهید به هیچ عنوان فایل های جدید روی فایل قدیم overwrite شنوند باید از سوئیچ n- یا never استفاده کنید. در انصورت دیگر اعلان replace بالا نشان داده نمی شود.
نویسنده نامی امیر
کد PHP:
zip –help
unzip -help
شکل کلی زیر برای فشرده کردن فایل های درون یک دایرکتوری استفاده می شود.
کد PHP:
zip zip_filename.zip /path/to/dir/* or /path/to/dir/filename
zip -r zip_filename.zip /path/to/dir
کد PHP:
*/zip logs_compress.zip /var/log
/zip – r logs_compress.zip /var/log
کد PHP:
zip -lev# zip_filename.zip /path/to/dir/* or /path/to/dir/filename
zip -lev# -r zip_filename.zip /path/to/dir
کد PHP:
zip -0 -r log_comp0.zip /var/log
zip -1 -r log_comp1.zip /var/log
zip -6 -r log_comp6.zip /var/log
zip -9 -r log_comp9.zip /var/log
کد PHP:
ls -lh *.zip
همانطور که می بینید حجم سطه 0 از همه بیشتر (آرشیو فایل ها) و حجم سطح 9 از همه کمتر (کندترین سطح فشرده سازی) است.
سوئیچ v- به معنی verbose وقتی دایرکتوری یا فایلی را فشرده می کنید یک سری اطلاعات کاملتر از فرایند را نشان می دهد.
کد PHP:
zip – v zip_filename.zip /path/to/dir/* or /path/to/dir/filename
zip -r -v zip_filename.zip /path/to/dir
دستور unzip برای استخراج فایل ها استفاده می شود. شکل کلی استفاده از آن به صورت زیر است.
کد PHP:
unzip zip_filename.zip
کد PHP:
unzip zip_filename.zip -d /path/to/dir/for/extract
کد PHP:
unzip -l zip_filename.zip
کد PHP:
unzip – v zip_filename.zip
کد PHP:
unzip -t zip_filename.zip
کد PHP:
zip -P YUOR_PASSWORD zip_filename.zip /path/to/dir/* or /path/to/dir/filename
zip -r -P YOUR_PASSWORD zip_filename.zip /path/to/dir
کد PHP:
zip -e zip_filename.zip /path/to/dir/* or /path/to/dir/filename
zip -e -r zip_filename.zip /path/to/dir
کد PHP:
Enter password
Verify password
اگر بخواهید محتوای یک فایل ZIP را در دایرکتوری که از قبل شامل همان اطلاعات است استخراج کنید پیغام هشدار دهنده زیر داده می شود که فایل های همنامی از قبل وجود دارند و با ورود y فایل های جدید جایگزین یا overwrite روی فایل های قبلی بشوند و با ورود n جلوگیری می شود. به ازای هر فایل مشابه در دایرکتوری و فایل zip اعلان داده خواهد شد که باید y یا n را برای overwrite شدن یا نشدن هر فایل انجام دهید.
کد PHP:
replace ../log1/var/log/cron? [y]es, [n]o, [A]ll, [N]one, [r]ename
کد PHP:
unzip -o zip_filename.zip
کد PHP:
unzip -n zip_filename.zip
نویسنده نامی امیر