- Как сжать папку linux
- Команда Gzip для сжатия и архивации файлов в Linux
- Gzip Command in Linux
- В этом руководстве мы покажем вам, как использовать gzip команду.
- Синтаксис команды gzip
- Сжатие файлов с gzip
- Сохранить оригинальный файл
- Подробный вывод
- Сжать несколько файлов
- Сжать все файлы в каталоге
- Изменить уровень сжатия
- Используя стандартный ввод
- Распаковка файлов с gzip
- Сохранить сжатый файл
- Распаковать несколько файлов
- Распаковать все файлы в каталоге
- Список содержимого сжатых файлов
- Вывод
- Инструменты сжатия файлов в Linux
- Основы сжатия и архивирования
- Сжатие с потерями и без потерь
- Основы архивирования
- Инструменты сжатия
- Утилита gzip
- Инструмент bzip2
- Утилита xz
- Архивирование и сжатие
- Комбинация tar и gzip
- Комбинация tar и bzip2
- Комбинация tar и xz
- Заключение
Как сжать папку linux
Сжатые файлы занимают меньше места на диске и загружаются из сети быстрее, чем большие, несжатые файлы. Вы можете сжать файлы Linux свободно распространяемыми утилитами сжатия Gzip или Zip , такой формат распознаётся большинством операционных систем.
По умолчанию, сжатые файлы получают расширение .gz . Команда Gzip создаёт сжатый файл с расширением .gz ; Gunzip извлекает сжатые файлы и удаляет файл .gz .
Чтобы сжать файл, в приглашении оболочки введите следующая команду:
Файл будет сжат и сохранён под именем filename.ext.gz .
Чтобы развернуть сжатый файл введите:
Файл filename.ext.gz при этом удаляется и заменяется файлом filename.ext .
Если вы обмениваетесь файлам с пользователям не Linux, вероятно лучше использовать zip , чтобы избежать проблем совместимости. Red Hat Linux может легко открыть zip или gzip файлы, но не Linux операционные системы могут не справиться с файлами gzip.
Чтобы сжать файл с помощью zip , введите:
zip -r filename.zip files
В этом примере filename определяет имя создаваемого файла, а files определяет какие файлы вы хотите включить в архив:
Чтобы извлечь содержимое файла zip, введите:
Вы можете сжать с помощью zip или gzip сразу несколько файлов. Перечислите имена файлов, разделив их пробелами.
gzip filename.gz file1 file2 file3 /user/work/school
Приведённая выше команда сожмёт file1 , file2 , file3 и содержимое каталога /user/work/school и поместит их в файл filename.gz .
Tar сохраняет несколько файлов или содержимое каталога или каталогов в одном файле. Это хороший способ создавать резервные копии и архивы. Обычно файлы, сделанные tar, имеют расширение .tar .
Чтобы создать файл tar, введите:
tar -cvf filename.tar files/directories
В этом примере filename.tar определяет имя создаваемого файла, а files/directories определяет какие файлы или каталоги вы хотите включить в новый архив.
Вы можете использовать абсолютные или относительные пути для этих файлов или каталогов (чтобы узнать больше о путях, обратитесь к разделу Смена каталогов с помощью cd в Главе 10 ). Разделите имена файлов и каталогов пробелами.
В показанном ниже примере показано создание файла с абсолютными путями:
tar -cvf foo.tar /home/mine/work /home/mine/school
Указанная выше команда поместит все файлы каталога /work и подкаталога /school в новый файл foo.tar в текущем рабочем каталоге.
Команда tar -cvf foo.tar file1.txt file2.txt file3.txt поместит файлы: file1.txt , file2.txt и file3.txt в новый файл foo.tar .
Чтобы просмотреть содержимое файла tar, введите:
Чтобы извлечь содержимое файла tar, введите:
Эта команда не удаляет файл .tar , а извлекает содержимое .tar в текущий рабочий каталог.
Команда tar не автоматического выполняет сжатия файлов. Вы можете сжать файлы tar выполнив:
tar -czvf foo.tar
Сжатые файлы обычно имеют расширение .tgz и сжимаются при помощи gzip.
Источник
Команда Gzip для сжатия и архивации файлов в Linux
Gzip Command in Linux
В этом руководстве мы покажем вам, как использовать gzip команду.
Gzip — это один из самых популярных алгоритмов сжатия, который позволяет уменьшить размер файла и сохранить исходный режим файла, владельца и метку времени.
Gzip также ссылается на .gz формат файла и gzip утилиту, которая используется для сжатия и распаковки файлов.
Синтаксис команды gzip
Общий синтаксис gzip команды выглядит следующим образом:
Gzip сжимает только отдельные файлы и создает сжатый файл для каждого данного файла. По соглашению, имя файла, сжатого с помощью Gzip, должно заканчиваться либо либо, .gz либо .z .
Если вы хотите сжать несколько файлов или каталогов в один файл, сначала вам нужно создать архив Tar, а затем сжать .tar файл с помощью Gzip. Файл, который заканчивается .tar.gz или .tgz является архивом Tar, сжатым с помощью Gzip.
Gzip чаще всего используется для сжатия текстовых файлов, архивов Tar и веб-страниц. Не используйте Gzip для сжатия изображений, аудио, документов PDF и других двоичных файлов, так как они уже сжаты.
gzip может сжимать только обычные файлы. В символические ссылки игнорируются.
Сжатие файлов с gzip
Чтобы сжать один файл, вызовите gzip команду с именем файла:
gzip создаст файл filename.gz и удалит исходный файл.
По умолчанию gzip в сжатом файле хранятся временная метка, режим, владелец и имя исходного файла.
Сохранить оригинальный файл
Если вы хотите сохранить исходный (исходный) файл, используйте -k опцию:
Другой вариант сохранить исходный файл — использовать -c опцию, которая говорит, что gzip нужно писать в стандартный вывод и перенаправлять вывод в файл:
Подробный вывод
Используйте эту -v опцию, если вы хотите увидеть процентное сокращение и имена файлов, которые обрабатываются:
Сжать несколько файлов
Вы также можете передать несколько файлов в качестве аргументов команды. Например, чтобы сжать файлы с именами file1 , file2 , file3 вы бы выполнить следующую команду:
Команда выше создаст три сжатых файлов file1.gz , file2.gz , file3.gz .
Сжать все файлы в каталоге
Чтобы сжать все файлы в данном каталоге, используйте -r параметр:
gzip будет рекурсивно проходить через всю структуру каталогов и сжимать все файлы в каталоге и его подкаталогах.
Изменить уровень сжатия
gzip позволяет указать диапазон уровней сжатия от 1 до 9. -1 или —fast означает самую высокую скорость сжатия с минимальной степенью сжатия, -9 или —best указывает самую низкую скорость сжатия с максимальной степенью сжатия. Уровень сжатия по умолчанию — -6 .
Например, чтобы получить максимальное сжатие, вы должны выполнить:
Сжатие — это интенсивная загрузка процессора, чем выше уровень сжатия, тем дольше длится процесс.
Используя стандартный ввод
Чтобы создать .gz файл из stdin, направьте вывод команды в gzip . Например, чтобы создать резервную копию базы данных Gzipped MySQL, вы должны выполнить:
Вывод mysqldump команды будет входом для gzip .
Распаковка файлов с gzip
Чтобы распаковать .gz файл, используйте -d параметр:
Еще одна команда, которую вы можете использовать для распаковки GZIP-файла gunzip . Эта команда в основном псевдоним для gzip -d :
Возможно, вам будет легче запомнить, gunzip чем gzip -d .
Сохранить сжатый файл
Как и при сжатии файла, -k опция указывает gzip сохранить входной файл, в данном случае это сжатый файл:
Распаковать несколько файлов
Чтобы распаковать несколько файлов одновременно, передайте имена файлов в gzip качестве аргументов:
Распаковать все файлы в каталоге
При использовании -d и -r опции, gzip распаковывает все файлы в данной директории рекурсивно:
Список содержимого сжатых файлов
При использовании с -l параметром gzip показывает статистику по данным сжатым файлам:
Вывод будет включать в себя имя несжатого файла, сжатый и несжатый размер и степень сжатия:
Чтобы получить больше информации, добавьте -v опцию:
Вывод
С помощью Gzip вы можете уменьшить размер данного файла. Команда gzip позволяет сжимать и распаковывать файлы.
Для получения дополнительной информации о gzip команде обратитесь к странице документации Gnu gzip .
Источник
Инструменты сжатия файлов в Linux
Сжимать файлы и каталоги необходимо по нескольким причинам. Некоторые из наиболее очевидных преимуществ – это сохранение дискового пространства экономия полосы пропускания при использовании сети.
В этом руководстве мы обсудим различные методы сжатия данных и связанные с ними операции, которые увеличивают гибкость сжатия (например, архивирование).
Примечание: Все примеры выполнены на сервере Ubuntu 12.04, но инструменты будут работать аналогичным образом и в других дистрибутивах Linux.
Основы сжатия и архивирования
Сжатие – это технология уменьшения размера файла на диске с помощью разных алгоритмов и математических вычислений. Файлы форматируются определенным образом, что делает их общую структуру несколько предсказуемой, даже если их содержимое отличается. Кроме того, содержимое довольно часто повторяется. Обе эти характеристики позволяют сжимать файлы.
Сжатие с потерями и без потерь
При обсуждении сжатия в отношении компьютеров и типов файлов одни и те же термины могут означать несколько разных вещей в зависимости от контекста. Возьмем, к примеру, музыкальный файл MP3. MP3 – это сжатый звуковой файл, созданный из более крупного исходного музыкального файла.
Этот тип сжатия принципиально отличается от того, о чем мы будем говорить в этом руководстве. Это связано с тем, что MP3 создается путем анализа формы сигнала аудиофайла, в ходе которого выясняется, какие данные можно потерять, сохранив при этом общий звук оригинала.
Это метод называется сжатием с потерями, поскольку он действительно теряет информацию из исходного файла, которая не попадает в MP3. Конвертировать MP3 обратно в исходный файл невозможно.
Пользователи могут не заметить, что файл сжат, но такой файл содержит не всю информацию оригинала. Чем выше степень сжатия, тем больше данных будет утрачена.
Другим примером сжатия с потерями является изображение в формате JPEG. Чем больше оно сжато, тем больше данных теряется, и тем заметнее будет сжатие. Утилита сжатия JPEG попытается найти поля цвета, которые достаточно близки друг к другу, и заменяет все такие поля одним цветом. Чем больше степень сжатия, тем больше цветов будет объединено таким образом.
Альтернативным методом является сжатие без потерь; эта технология создает файл меньший, чем исходный, но такой файл можно использовать для восстановления исходного файла. В этом руководстве рассматривается только сжатие без потерь. Этот тип не использует методы аппроксимации для сжатия данных, вместо этого здесь применяются определенные алгоритмы для распознавания повторяющихся частей файла. Такие части удаляются и заменяется заполнителями. Дальнейшие повторения шаблона заменяются одним и тем же заполнителем.
Это позволяет компьютеру использовать меньше дискового пространства для хранения данных. Чтобы понять, как это работает, представьте список переменных: он определяет данные, которые в дальнейшем используются для написания программы. По сути, из этих двух этапов и состоит сжатие без потерь: повторяющиеся значения сопоставляются с шаблоном, на который можно легко сослаться, после чего каждое из этих значений в файле заменяется ссылкой.
Кроме того, современные методы сжатия без потерь считаются адаптивными. Это означает, что они не анализируют весь входной файл сразу и не создают из него «словарь» ссылочных подстановок. Вместо этого они анализируют файл по мере его поступления и переписывают словарь в зависимости от того, какие данные повторяются в файле. В процессе сжатия словарь постепенно становится более эффективным.
Основы архивирования
Под понятием архивирования данных обычно подразумевается их резервное копирование и сохранение в безопасном месте, часто в сжатом формате. «Архив» на сервере Linux в целом имеет несколько другое значение. Обычно архивы – это файлы tar.
Раньше данные с серверов часто архивировались в ленточные архивы – это магнитные ленточные устройства, которые могут хранить последовательные данные. В некоторых отраслях этому методу резервного копирования по-прежнему отдают предпочтение. Чтобы сделать архивирование более продуктивным, была создана программа tar. Она позволяет ссылаться на файлы и управлять ими в виде одного файла, не влияя на права и метаданные файлов. В дальнейшем файл или всю файловую систему можно извлечь из архива.
В целом, tar – это формат, который обеспечивает удобное распространение, хранение, резервное копирование и управление группами связанных файлов.
В данном руководстве речь также пойдёт об архивах, поскольку они часто используют сжатие для более производительного хранения данных.
Инструменты сжатия
Linux предоставляет несколько инструментов сжатия. Каждый из них имеет свои преимущества и недостатки. Основное внимание следует уделить инструментам сжатия, которые работают с tar, потому что они гораздо более гибкие, чем остальные инструменты.
Утилита gzip
gzip – это уже классический инструмент сжатия данных в Linux. Он появился в 1992 году и до сих пор находится в разработке.
Инструмент gzip использует алгоритм сжатия DEFLATE (который также используется другими популярными технологиями, такими как PNG, HTTP, SSH).
Одно из главных преимуществ инструмента gzip – его скорость. Он может сжимать и распаковывать данные с гораздо более высокой скоростью, чем некоторые другие популярные технологии (особенно если сравнить наиболее компактные форматы сжатия каждой утилиты). Он также очень эффективен в плане использования памяти при сжатии и распаковке и не требует больше памяти при оптимизации сжатия.
Ещё одним преимуществом gzip является совместимость. Поскольку gzip – очень старый инструмент, почти все системы Linux независимо от возраста поддерживают gzip.
Его самый большой недостаток заключается в том, что он сжимает данные менее тщательно, чем некоторые другие средства сжатия. Если вы часто сжимаете и распаковываете большое количество данных, gzip вполне подходит; но если вы планируете сжать файл один раз и сохранить его, тогда лучше рассмотреть другие варианты.
Обычно файлы gzip имеют расширение .gz. Чтобы сжать файл с помощью gzip, нужно ввести:
Команда сожмет файл и переименует его в sourcefile.gz.
Чтобы выполнить рекурсивное сжатие каталога, добавьте флаг –r:
gzip -r directory1
Эта команда сожмет все файлы в каталоге. Обычно этот метод использовать не рекомендуется; лучший результат можно получить путем архивации каталога и сжатия итогового файла.
Чтобы получить больше информации о сжатом файле, используйте флаг -l, который выдаст статистику:
gzip -l test.gz
compressed uncompressed ratio uncompressed_name
5133 14073 63.7% test
Чтобы передать результат другой утилите, вы можете отправить сжатый файл в стандартный вывод с помощью флага –с. В этом примере вывод будет перенаправлен обратно в файл:
gzip -c test > test.gz
Вы можете настроить оптимизацию сжатия, передав числовой флаг от 1 до 9. Флаг -1 (и его псевдоним –fast) выполняет самое быстрое, но наименее тщательное сжатие. Флаг -9 (и его псевдоним –best) – это, соответственно, самое медленное и самое тщательное сжатие. По умолчанию используется среднее значение -6.
gzip -9 compressme
Чтобы распаковать файл, добавьте флаг –d (также можно использовать псевдоним gunzip).
Инструмент bzip2
bzip2 – еще один популярный формат и инструмент сжатия. Он немного младше gzip, вышел в 1996 году. Сегодня bzip2 считается традиционной альтернативой gzip.
Если gzip работает на алгоритме DEFLATE, то инструмент bzip2 – это реализация алгоритма Берроуза-Уилера. Это различие в методологии приводит к тому, что инструмент bzip2 довольно сильно отличается от gzip.
Наиболее важным преимуществом bzip2 для большинства пользователей является более высокая степень сжатия, которая достигается за счет увеличения времени сжатия. Инструмент bzip2 может создавать значительно более компактные файлы, чем gzip, но для этого требуется гораздо больше времени (из-за более сложного алгоритма).
К счастью, на распаковку уходит гораздо меньше времени, чем на сжатие. Поэтому формат bzip2 часто используется для распространения файлов: потратив больше времени на сжатие, вы получаете файлы меньшего объема, которые легко распространять и можно быстро распаковать. На распаковку у bzip2 все же уходит намного больше времени, чем у gzip.
Также следует иметь в виду, что у bzip2 требования к памяти больше, чем у gzip. Это не повлияет на работу большинства машин, но вполне может отразиться на работе небольших встроенных устройств. Опционально можно передать флаг -s, который сократит требования к памяти примерно наполовину, но также приведет к снижению степени сжатия.
Обычно файлы, сжатые с помощью этого инструмента, имеют расширение .bz2.
Чтобы сжать файл, введите:
Эта команда сожмет файл и присвоит ему имя afile.bz2.
Вы можете передать флаг -s, чтобы утилита работала в режиме экономии памяти. Это понизит качество сжатия, но, с другой стороны, не потратит столько ресурсов.
bzip2 поддерживает числовые флаги, но их действие несколько отличается от флагов gzip. В bzip2 они представляют размер блока, который утилита использует при сжатии. Этот параметр определяет отношение использования памяти к сжатию, а не скорость. По умолчанию используется флаг -9 (относительно высокое использование памяти, но высокое качество сжатия).
Чтобы распаковать файл, используйте флаг –d:
bzip2 -d file.bz2
Эта команда вернёт распакованный файл по имени file.
Утилита xz
xz является относительно новым механизмом сжатия. Инструмент вышел в 2009 году и с тех пор стабильно обновляется.
Утилита xz использует алгоритм сжатия LZMA2. Этот алгоритм имеет более высокий коэффициент сжатия, чем предыдущие два, благодаря чему он отлично подходит для хранения данных на небольшом диске. Он создает файлы меньшего размера.
Хотя сжатые с помощью xz файлы весят меньше, чем файлы, сжатые с помощью других утилит, для сжатия требуется значительно больше времени. Например, на сжатие довольно большого файла с аргументами и флагами у gzip уйдет около половины минуты, bzip2 может потратить где-то около минуты, а у xz эта операция может занять около четырех или пяти минут.
Инструмент сжатия xz также использует много памяти (иногда столько же, сколько и предыдущие инструменты). Конечно, если на сервере достаточно памяти, это не будет проблемой, но эту характеристику нужно учитывать при выборе.
Хотя сжатие может занять намного больше времени, чем хотелось бы, на распаковку времени уходит довольно мало. Конечно, скорость распаковки xz никогда не достигает показателей gzip, но обычно она значительно превышает скорость bzip2. Использование памяти приемлемое (но относительно других инструментов довольно высокое).
Все эти преимущества и недостатки говорят о том, что этот формат отлично подходит для распространения программного обеспечения. С помощью этой утилиты вы можете предоставить пользователям компактный файл, который быстро распаковывается.
Ещё один недостаток xz – утилита не поддерживается некоторыми старыми системами.
Файлы, созданные с помощью xz, обычно используют расширение .xz.
Чтобы сжать файл, введите:
Эта команда создаст сжатый файл file.xz.
Запросить статистику сжатия можно с помощью флага –l:
xz -l test.xz
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 1 5,016 B 13.7 KiB 0.356 CRC64 test.xz
Если вам нужно отправить сжатые данные в стандартный вывод, используйте -с.
xz -c test > test.xz
Утилита xz также поддерживает числовые флаги. Чем меньше число, тем быстрее сжатие (-0 обеспечивает самую высокую скорость сжатия). По умолчанию используется значение -6.
Если вы хотите увеличить качество сжатия и не беспокоитесь о памяти и времени, которое уйдет на выполнение процедуры, используйте флаг –е, который включает режим сжатия «extreme». Его производительность можно настраивать с помощью числовых флагов.
xz -e -9 large_file
Чтобы распаковать файлы, используйте флаг –d.
xz -d large_file.xz
В результате получится распакованный файл large_file.
Архивирование и сжатие
Отдельные методы сжатия производительны сами по себе, но чаще всего они дают лучший результат в комбинации с tar. Это позволяет сохранять структуры каталогов, права на файлы и т. п.
Команду tar очень легко совмещается с сжатием. Она поддерживает флаги командной строки, которые можно использовать для автоматического вызова того или иного инструмента сжатия после завершения процесса архивирования.
Комбинация tar и gzip
Чтобы создать архив tar, который можно будет сжать утилитой gzip, передайте флаг –z. Он включает сжатие создаваемого архива. Перед флагами команды tar не ставится тире. Чтобы создать сжатый архив, обычно используется команда:
tar czvf compressed.tar.gz directory1
- c архивирует каталог directory1.
- v включает расширенный вывод.
- z включает сжатие gzip.
- f передаст вывод в сжатый файл compressed.tar.gz.
Как только файл будет создан, можно заглянуть внутрь. Для этого используйте флаг t вместо с.
tar tzvf compressed.tar.gz
drwxr-xr-x demouser/demouser 0 2014-03-19 18:31 directory1/
-rw-r—r— demouser/demouser 5458 2014-03-19 18:31 directory1/httpd.conf.orig
-rw-r—r— demouser/demouser 2295 2014-03-19 18:31 directory1/nginx.conf.orig
-rw-r—r— demouser/demouser 5458 2014-03-19 18:21 directory1/httpd.conf
Чтобы распаковать архив, используйте флаг x:
tar xzvf compressed.tar.gz
Структура каталогов архива будет перемещена в текущий каталог.
Комбинация tar и bzip2
Чтобы сжать архив с помощью bzip2, замените флаг z (который вызывает gzip) флагом j.
tar cjvf bzipcompressed.tar.bz2 directory2
Создав файл, вы можете просмотреть его:
tar tjvf bzipcompressed.tar.bz2
drwxr-xr-x demouser/demouser 0 2014-03-19 18:31 directory2/
-rw-r—r— demouser/demouser 5458 2014-03-19 18:31 directory2/httpd.conf.orig
-rw-r—r— demouser/demouser 2295 2014-03-19 18:31 directory2/nginx.conf.orig
-rw-r—r— demouser/demouser 5458 2014-03-19 18:21 directory2/httpd.conf
Чтобы распаковать архив в текущий каталог, введите:
tar xjvf bzipcompressed.tar.bz2
Комбинация tar и xz
Чтобы сжать архив с помощью xz, используйте флаг J:
tar cJvf xzcompressed.tar.xz directory3
Чтобы просмотреть содержимое файла, используйте:
tar tJvf xzcompressed.tar.xz
drwxr-xr-x demouser/demouser 0 2014-03-19 18:31 directory3/
-rw-r—r— demouser/demouser 5458 2014-03-19 18:31 directory3/httpd.conf.orig
-rw-r—r— demouser/demouser 2295 2014-03-19 18:31 directory3/nginx.conf.orig
-rw-r—r— demouser/demouser 5458 2014-03-19 18:21 directory3/httpd.conf
Чтобы распаковать архив в текущий каталог, введите:
tar xJvf xzcompressed.tar.xz
Заключение
Теперь у вас есть достаточно информации, чтобы принять обоснованное решение относительно того, какой метод сжатия следует использовать в тех или иных обстоятельствах. Все инструменты сжатия, описанные в этой статье, имеют множество преимуществ в зависимости от ситуации.
Выбирая инструмент сжатия, важно знать о недостатках производительности и проблемах совместимости различных утилит.
Источник