মনে করুন যে আমার কাছে 10,000 টি এক্সএমএল ফাইল রয়েছে। এখন ধরুন আমি তাদের একটি বন্ধুর কাছে প্রেরণ করতে চাই। তাদের প্রেরণের আগে, আমি তাদের সংকোচন করতে চাই।
পদ্ধতি 1: এগুলি সংকুচিত করবেন না
ফলাফল:
Resulting Size: 62 MB
Percent of initial size: 100%
পদ্ধতি 2: প্রতিটি ফাইল জিপ করুন এবং তাকে 10,000 এক্সএমএল ফাইল প্রেরণ করুন
COMMAND:
for x in $(ls -1) ; do echo $x ; zip "$x.zip" $x ; done
ফলাফল:
Resulting Size: 13 MB
Percent of initial size: 20%
পদ্ধতি 3: 10,000 এক্সএমএল ফাইলযুক্ত একক জিপ তৈরি করুন
COMMAND:
zip all.zip $(ls -1)
ফলাফল:
Resulting Size: 12 MB
Percent of initial size: 19%
পদ্ধতি 4: একক ফাইলগুলিতে ফাইলগুলিকে সংযুক্ত করুন এবং এটি জিপ করুন
COMMAND:
cat *.xml > oneFile.txt ; zip oneFile.zip oneFile.txt
ফলাফল:
Resulting Size: 2 MB
Percent of initial size: 3%
প্রশ্নাবলী:
- আমি যখন কেবল একটি একক ফাইল জিপ করছি তখন কেন আমি এই ধরনের নাটকীয়ভাবে আরও ভাল ফলাফল পেতে পারি?
- আমি পদ্ধতি 2 এর চেয়ে 3 পদ্ধতি ব্যবহার করে মারাত্মকভাবে আরও ভাল ফলাফলের প্রত্যাশা করছিলাম, তবে তা করি না। কেন?
- এই আচরণ কি নির্দিষ্ট
zip
? আমি যদি চেষ্টা করেgzip
দেখি তবে আমি কী আলাদা ফলাফল পেতে পারি?
অতিরিক্ত তথ্য:
$ zip --version
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
Currently maintained by E. Gordon. Please send bug reports to
the authors using the web page at www.info-zip.org; see README for details.
Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip,
as of above date; see http://www.info-zip.org/ for other sites.
Compiled with gcc 4.4.4 20100525 (Red Hat 4.4.4-5) for Unix (Linux ELF) on Nov 11 2010.
Zip special compilation options:
USE_EF_UT_TIME (store Universal Time)
SYMLINK_SUPPORT (symbolic links supported)
LARGE_FILE_SUPPORT (can read and write large files on file system)
ZIP64_SUPPORT (use Zip64 to store large files in archives)
UNICODE_SUPPORT (store and read UTF-8 Unicode paths)
STORE_UNIX_UIDs_GIDs (store UID/GID sizes/values using new extra field)
UIDGID_NOT_16BIT (old Unix 16-bit UID/GID extra field not used)
[encryption, version 2.91 of 05 Jan 2007] (modified for Zip 3)
সম্পাদনা করুন: মেটা ডেটা
একটি উত্তর প্রস্তাব দেয় যে পার্থক্যটি হ'ল জিপটিতে সঞ্চিত সিস্টেম মেটা ডেটা। আমি মনে করি না যে এটি হতে পারে। পরীক্ষা করার জন্য, আমি নিম্নলিখিতগুলি করেছি:
for x in $(seq 10000) ; do touch $x ; done
zip allZip $(ls -1)
ফলস্বরূপ জিপটি 1.4MB। এর অর্থ হ'ল এখনও ~ 10 এমবি অব্যক্ত স্থান নেই।
$(ls -1)
, শুধু ব্যবহার *
: for x in *
; zip all.zip *
.tar.gz
পুরো ডিরেক্টরিটি জিপ করার বিরোধিতা করে।