نعود إلى المشكلة المعتادة التي تصبح ميزة للكثيرين مستخدمي جنو / لينكس المتقدمين وهو العدد الكبير من البدائل أو الاحتمالات المتاحة. يمكن أن يكون هذا بالنسبة للأشخاص الأقل خبرة مشكلة عندما لا يعرفون جيدًا أي واحد يختار ، ولكن كما أقول ، فإن وجود المزيد من الاحتمالات أو المرونة ليس شيئًا سيئًا أبدًا ، بل على العكس تمامًا. في هذه الحالة سوف نتحدث عن خوارزميات وإجراءات الضغط وإلغاء الضغط الموجودة على النظام الأساسي المفضل لدينا حتى تتمكن من رؤيتها بشكل مختلف وليس فوضى كبيرة من خلال عدم معرفة الخيار الأفضل في حالتك ...
الحقيقة هي أنه لا توجد فقط أدوات مستخدمة مثل القطران يمكننا من خلالها إنشاء حزم يمكن أيضًا إضافة نوع من الضغط كما اعتدنا على رؤيته في كرات القطران الشهيرة التي تحدثنا عنها بالفعل LxA في مناسبات عديدة. سنجد أيضًا متغيرات من هذه الأدوات التافهة والمتكررة مثل grep للبحث داخل الملفات المضغوطة مثل bzfgrep ، أو حتى أدوات أخرى مثل أقل وأكثر التي تحتوي أيضًا على متغيراتها للملفات المضغوطة مثل bzless و bzmore. لرؤيتهم جميعًا ، علينا فقط إلقاء نظرة على إخراج الأمر التالي:
apropos compress
الخوارزميات والاختبارات:
بين الجميع الخوارزميات يتوفر ضغط بلا خسارة في Linux لضغط وفك ضغط البيانات لدينا الكثير من الخيارات. للحصول على دليل على الوقت الذي يستغرقه الضغط باستخدام خوارزمية ضغط واحدة أو أخرى أو المدة التي يستغرقها فك الضغط ، أقترح عليك إجراء بعض الاختبارات بنفسك. يمكنك استخدام أمر الوقت لذلك ، والذي سيمنحك الوقت المستغرق في عملية الضغط وإلغاء الضغط. على سبيل المثال ، إذا كنت ستستخدم أداة zip لضغط ملف يسمى test:
time zip prueba.zip prueba
سيؤدي ذلك إلى التخلص من الوقت المستخدم ، ولكن إذا كنت تريد أن ترى حجم الملف الذي تم إنشاؤهيمكنك محاولة ضغط نفس الملف باستخدام خوارزميات وأدوات ضغط مختلفة وبمجرد أن يكون لديك كل الملفات المضغوطة في دليل بأمر بسيط لإدراجها ، تحقق من حجم كل منها:
ls -l
إذا كنت تفضل ذلك ، يمكنك أيضًا استخدام أدوات أخرى لمقارنة الملفات المضغوطة ، على سبيل المثال مع بعض متغيرات أداة الفرق:
xzdiff [opciones] fichero1 fichero2 lzdiff [opciones] fichero 1 fichero2
إذا كنت تريد أن ترى الرسوم البيانية على حجم وسرعة الخوارزميات ، يمكنك زيارة هذا الارتباط الآخر.
أدوات الضغط:
فيما يتعلق الأدوات المتاحة لدينا العديد منها ، بعضها بواجهة رسومية للمبتدئين وسيتعين علينا ببساطة التعامل مع واجهة مستخدم رسومية بسيطة وبديهية لإجراء عمليات الضغط وإلغاء الضغط مثل PeaZip ، أو 7zip ، ... إلخ. على وجه التحديد ، الأول قادر على العمل بتنسيقات مختلفة ، على وجه التحديد أكثر من 180 منهم. ولكن إذا كنت ممن لا يزالون يحبون العمل مع الجهاز ، فسيكون لديك عدد كبير من الأدوات التي تعرفها بالتأكيد:
- zip و unzip: يعد خيارًا جيدًا إذا كان ما تريده هو ملفات محمولة لأنظمة تشغيل أخرى ، حيث ستجد أدوات للعمل مع هذه الملفات على أنظمة Microsoft Windows وأيضًا على macOS وغيرها. على سبيل المثال ، لضغط ملف أو دليل يسمى test ثم فك ضغطه:
zip prueba.zip prueba unzip prueba.zip
- GZIP: الأفضل إذا كان ما تريده هو قابلية النقل بين أنظمة تشغيل Unix / Linux. ربما يكون معدل الضغط مطابقًا تقريبًا لـ zip ، وربما يكون أفضل قليلاً ، لكنك لن تجد فرقًا كبيرًا في حجم الملف تحت zip أو gzip. للضغط وفك الضغط باستخدام هذه الأداة يمكننا استخدام خيارين في حالة فك الضغط وهما الخيار -do ، مباشرة باستخدام الاسم المستعار gunzip:
gzip prueba gzip -d prueba.gz gunzip prueba.gz
- bzip2: مثل الخوارزمية السابقة ، هذه الخوارزمية موجودة جدًا في أنظمة تشغيل Unix / Linux ، على الرغم من أنها ستستغرق وقتًا أطول قليلاً في عمليات الضغط وإلغاء الضغط مقارنةً بحالة gzip. في هذه الحالة ، لن يترجم التأخير إلى معدل ضغط أعلى كما في حالة xz ، لأن الملفات المضغوطة تحت bzip2 ستشغل أكثر بقليل من ملفات gzip. لهذا السبب يوصى بتجنب bzip2 واختيار xz أو gzip بدلاً من ذلك. على الرغم من أن كل شيء سيعتمد قليلاً على نوع الملف الذي تحاول ضغطه ... على سبيل المثال:
bzip2 prueba bzip2 -d prueba.bz2
- xz: هو التنسيق المفضل لأحجام الملفات الكبيرة ، حيث يقدم أفضل معدلات الضغط ، ولكن من الصحيح أيضًا أن الأمر سيستغرق وقتًا أطول لإكمال الضغط أو فك الضغط. إنه أحدث تمامًا من السابق ، لذلك قد تجد نفسك مع توزيعات أكثر بدائية أو أنظمة يونكس قديمة لا تحتوي على أداة لهذا النظام. أمثلة:
xz prueba xz -d prueba.xz
- unrar و rar: يمكننا أيضًا العمل مع تنسيقات RAR في Linux بفضل هذه الأدوات ، على الرغم من أنها ليست شائعة في حالة أنظمة * nix مثل الأنظمة السابقة ... في هذه الحالة يمكننا اختيار:
rar a prueba.rar prueba unrar e prueba.rar
- ضغط وفك الضغط: وعلى الرغم من ضياع استخدام الضاغط ولم يعد شائعًا مثل السابق ، إلا أنني لا أرغب في التغاضي عن هذه الأداة أيضًا. يتم استخدامه لضغط الملفات بامتداد .Z ويفعل ذلك بفضل خوارزمية Lempel-Ziv المعدلة. على سبيل المثال:
compress -v prueba uncompress prueba.Z
إذا كنت تريد العمل مباشرة مع أداة القطرانيمكنك أيضًا حزم الملفات وضغطها في نفس الوقت وكذلك فك ضغطها وفك ضغطها. في هذه الحالة يمكننا تمرير خيارات نوع الخوارزمية التي سيتم استخدامها مباشرة إلى القطران. لكن أولاً وقبل كل شيء ، يجب أن تعلم أنه باستخدام الخيار c ، نقوم بإنشاء حزمة وباستخدام الخيار x نستخرجها. على سبيل المثال:
tar czvf prueba.tar.gz prueba tar xzvf prueba.tar.gz
كما ترون لقد استخدمنا الخيارات zvf الذي يشير إلى نوع خوارزمية الضغط z (في هذه الحالة gzip) ، v للوضع المطول الذي يعطي معلومات حول ما يفعله ، و f للإشارة إلى الملف الذي سيعمل معه ... حسنًا ، إذا قمنا بتغيير ذلك z بحرف آخر يتوافق مع نوع آخر من الخوارزمية ، يمكننا تغيير نوع الضغط المطبق على كرة القطران:
خيار | خوارزمية | تمديد |
---|---|---|
z | GZIP | .tar.gz |
j | bzip2 | .tar.bz2 |
J | xz | .tar.xz |
com.lzip | الرمز البريدي | .tar.lz |
LZMA | LZMA | .tar.lzma |
* بالطبع تحتوي جميع الأوامر السابقة على خيارات شيقة أدعوك لاكتشافها باستخدام الإنسان ، بعضها ضروري جدًا مثل العودية ، إلخ.
لا تنسى اترك تعليقاتك...
أنا على وجه الخصوص استخدام 7zip
فاتك 7zip. خيار جيد جدا وبرامج مجانية.
معلومات ممتازة ، على الرغم من أنني كنت سأبدأ بالقول إنه يمكن أيضًا ضغطها وفك ضغطها بيانياً دون أي مشكلة حتى لا ترى "الدبابير" في الخدمة التي تقول إن جنو / لينكس صعب للغاية ويجب القيام بكل شيء على وحدة التحكم. لا ، إنه خيار آخر.