فشرده سازی فایل ها با Zip
مي خوام يه كم در مورد آرشيو كردن و فشرده كردن و اين چيزا حرف بزنم. حتما براي هر كدوم از ما اين مسئله پيش مياد كه بخواهيم تعدادي فايل رو از روي يك سيستم لينوكس به جاي ديگه انتقال بديم يا مثلا چيزي كه براي خود من پيش اومد، مي خواستم سر يك ساعتي يك فولدر با كليه محتواش رو آرشيو و فشرده كنم تا از طريق مثلا يك سرويس دهنده سمبا ديگرون بتونن اون آرشيو را از روي يك ماشين ويندوز بردارن.
خب، اون قسمت اول كه توي cron صحبتش رو كرديم. ولي براي آرشيو كردن و فشرده سازي روش هاي مختلفي توي لينوكس هست، مثل zip ،tar ،bzip ،gzip و .... از اونجايي كه فايل هاي زيپ توسط ويندوز XP بدون احتياج به برنامه اضافي و جانبي مي تونن مورد استفاده قرار بگيرن، من در اينجا نحوه زيپ كردن فايل ها و فولدرها رو مي گم:
ساده ترين حالت فشرده سازي يك فايل تكي است:
zip zip_file.zip original_file.ext
براي فشرده سازي بيش از يك فايل:
zip zip_file.zip original_file1.ext original_file2.ext ...
براي زيپ كردن يك فولدر، در حالتي كه خودش داراي ساب فولدر نباشه، ميشه از دستور زير استفاده كرد:
zip zip_file.zip folder_name/
مي تونيم ميزان فشرده سازي رو براي برنامه ZIP مشخص كنيم:
zip -[0-9] zip_file.zip folder_name/
عدد 0 به معني اينه كه اصلا فشرده سازي صورت نگيره، چيزي كه مشابه tar بدون حالت فشرده سازي است. هرچي عدد بالاتر بره سرعت عمليات فشرده سازي كمتر ميشه و ميزان فشرده كردن بالاتر. مقدار پيش فرض سيستم هم عدد 6 است. اگر بخواهيم مي تونيم با تعريف يك alias در سيستم عامل، مقدار پيش فرض رو عدد دلخواه بگذاريم:
alias zip='zip -9'
يكي از اون مواردي كه خودم خيلي دنبالش بودم، محافظت از فايل زيپ شده توسط كلمه عبور است. براي اينكار دو تا راه وجود داره، اولي اينكه موقع عمليات فشرده سازي، خودمون كلمه عبور رو هم بهش بديم:
zip -P 123456 moby.zip *.txt
اين براي اون وقتايي بدرد مي خوره كه مثل كار من، لازم باشه تمام عمليات اتوماتيك و مثلا توسط cron انجام بشه. اما اگر قراره كه از پاي سيستم عمليات فشرده سازي انجام بشه، آوردن كلمه عبور به شكل بالا زياد كار عاقلانه اي نيست. ميشه كاري كرد كه سيستم بدون اينكه كلمه عبور رو نمايش بده، از كاربر رمز رو دريافت كنه:
zip -e moby.zip *.txt
Enter password:
Verify password:
خب، تا اينجا هرچي گفتيم مربوط بود به ساختن فايل زيپ. اگر بخواهيم فايل زيپ شده رو باز كنيم، از برنامه unzip بايد استفاده كنيم. ساده ترين روش استفاده هم:
unzip file_name.zip
اگر بخواهيم جزئيات عمليات رو هم ببينيم، بايد از سوئيچ v استفاده كنيم:
unzip -v file_name.zip
براي ديدن فايل هاي موجود در يك فايل زيپ هم بايد از سوئيچ l استفاده كنيم:
unzip -l file_name.zip
براي آزمايش سلامت فايل هاي موجود در يك آرشيو زيپ هم مي تونيم از دستور زير استفاده كنيم:
unzip -t moby.zip
Archive: moby.zip
testing: bible/ OK
testing: bible/genesis.txt OK
testing: bible/job.txt OK
testing: moby-dick.txt OK
testing: paradise_lost.txt OK
No errors detected in compressed data of moby.zip.
