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

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

Какой тип сжатия я могу использовать в Linux Mint 11 (в конце концов, 14), и является ли он лучшим для меня?

2 ответа2

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 do AFAIK знают, что поддерживают своего рода "шифрование" и пароль, но они довольно плохие. Вам, вероятно, было бы лучше (а также более правильно в Unix) использовать отдельный инструмент для шифрования и / или защиты паролем файлов - возможно, gnupg или truecrypt?

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

0

В целом, bzip лучше сжимает, чем (g)zip, а 7zip лучше, чем bzip. Tar предназначен для объединения файлов в один большой файл и не сжимает себя. Это часто используется вместе с инструментом сжатия. AFAIK все форматы могут обрабатывать шифрование, деление и уровень сжатия, но не все инструменты могут использовать эти параметры.

Это будет смола и сжать. Я не знаю, в каком порядке, но я думаю, что файл сначала сжимается, а затем добавляется в архив. Оригинальные файлы остаются там, где они есть.

tar -czvf test.tgz test

Другой вариант - gzip, но он работает только с отдельными файлами.

gzip test

Это заархивирует файл и добавит его в новый архив. Когда все сделано, тест-файл удаляется, я считаю.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .