У чому різниця в різних командах для стиснення файлів у linux?


0

Які команди для стиснення файлів у linux і які відмінності між ними? (наприклад: tar, gzip, rar).
Я працюю над Linux Mint 11 і роблю сценарій для стиснення файлів. Мені потрібно:

    1. Підтримка шифрування паролів (і дешифрування)
    2. підтримка поділу файлу
    3. підтримка рівня стиснення

Який тип стиснення можна використовувати в Linux Mint 11 (в кінцевому рахунку, 14) і є найкращим для мене?


tar не є компресором (але може викликати gzip, bzip2, ....).
Basile Starynkevitch

Відповіді:


2

Перш за все, деякі команди використовуються для створення архівів - тобто. файл, що містить інші файли, часто з структурою каталогу, правами власності, правами доступу та датами. Найбільш поширеними з них є ar (використовується при створенні бібліотек), tar (TapeARchive) і cpio (CoPyInOut).

Тоді ми маємо кілька команд, які використовуються стиснути файлів - тобто. роблячи файл зайвим менше місця на диску. Стиснення також можна зробити для архівів. Найбільш поширеними є програми стиснення gzip, bzip2, xz, 7zip... як і два старших, compress і compact.

Це дуже відповідає "Unix-філософії", де кожна команда робить тільки одне (але робить це добре) ... тут, або створює архіви або стиснути файл - але не обидва. Звичайно одна команда може назвати іншу, як tar може зателефонувати gzip або bzip2.

Для Windows найчастіше створювати програми, які поєднують пов'язані завдання - точніше, для користувача начебто пов'язані з цим завдання ... Як зробити і архівувати, і стиснути - навіть якщо це дуже різні завдання. Отже, ми також маємо деякі інструменти під Unix / Linux для обробки - а іноді і створення таких архівів. zip, rar і arj є прикладами таких архівів, які більш-менш підтримуються під Linux. Зазвичай вони виконують одночасно стиснення та архівування (напр. zip спочатку стискайте файли, потім робите архів зі стиснених файлів).

rar і zip чи AFAIK знають, що підтримують певний тип "шифрування" і пароль, але вони досить погані. Можливо, вам буде краще (як і більш правильно Unix) використовувати окремий інструмент для шифрування та / або захисту файлів паролем - можливо gnupg або truecrypt?

Принаймні zip, rar і tar підтримка створення архівів з декількох частин. Однак інший прийнятний "Unix-шлях" для цього; було б використовувати split або на нестиснутому архіві (tar або cpio) і стискати кожну частину окремо, або на стиснутому (наприклад, з bzip2) файлом - і пізніше за допомогою cat об'єднати частини. Розподіл стисненого архіву, мабуть, буде кращим, оскільки після повторного злиття програма стиснення (наприклад, bzip2) виявить будь-які помилки. Хоча стискання кожної частини окремо, гарантує, що інші частини можуть бути відновлені (з більшістю їх файлів), якщо одна частина була пошкоджена.


Хоча я погоджуюся з вашою рекомендацією TrueCrypt, AFAIK всі сучасні версії / варіанти ZIP та RAR використовують 128/256-бітну AES (хоча SecureZip від PKWare також підтримує інші алгоритми), тому ви можете докладно розробити або надати надійні джерела для резервування заяви їхнє шифрування / безпека є "поганим", особливо якщо використовуються досить довгі та складні паролі / фрази?
Karan

0

Загалом, bzip краще стискати, ніж (g) zip, а 7zip краще, ніж bzip. Тар призначений для комплектації файлів в один великий файл і не стискається. Він часто використовується разом з інструментом стиснення. AFAIK Всі формати можуть обробляти шифрування, поділ і рівень стиснення, але не всі інструменти можуть використовувати ці параметри.

Це буде смоляться і стискати. Я не знаю, в якому порядку, але я думаю, що файл спочатку стискається, а потім додається до архіву. Оригінальні файли залишаються там, де вони знаходяться.

tar -czvf test.tgz test

Іншим варіантом є gzip, але це працює тільки на окремих файлах

gzip test

Це додасть файл до архіву та додасть його до нового архіву. Коли все зроблено, тест-файл видаляється.


Таким чином, ви пропонуєте, щоб в першу чергу файл, а потім стиснути його? Я можу використовувати тільки команди, які є стандартними в Linux. Чи можна використовувати 7zip або bzip без встановлення додаткових пакетів?
Nojas

@Nojas так ви можете. Що стосується стандарту, tar і gzip і майже напевно bzip буде встановлено за замовчуванням, як і буде compress.
terdon

7zip не стандартний, я вважаю. Використовуйте gzip або tar, як пояснено в моїй редагованій відповіді.
SPRBRN

1
"Загалом, bzip краще, ніж zip, 7zip краще, ніж bzip." Що стосується рівня стиснення, це справедливо. З точки зору швидкості та використання пам'яті це зворотне. До речі, ваш приклад gzip не є правильним, оскільки gzip тільки стискає, це не архіватор. він робить foo.gz файл для кожного входу foo (а потім видаляє нестиснуту версію). gzip test просто виконує цей процес для 'test'. Якщо ви хотіли б, щоб ви могли б tar (без стиснення) купу GZ, створені таким чином, хоча.
kampu

Ви маєте рацію щодо gzip. Я оновлював свою відповідь.
SPRBRN
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.