Архивирование и сжатие файлов в Linux

Архивирование - объединение нескольких небольших файлов в один, с целью более удобной последующей передачи, хранения, шифрования или сжатия

    tar

    tar - утилита архивирования
    В tar добавлена возможность одновременно производить сжатие tar-архива


    -c
    Создайте архив.
    
    -v
    Отображение хода выполнения в терминале при создании архива, также известное как «подробный» режим. Знак -v в этих командах необязателен, но может быть полезен.
    
    -f
    Позволяет указать имя файла архива.
    
    tar Работает рекурсивно. Выполняет требуемое действие для каждого последующего каталога внутри указанного каталога.

    Синтаксис команды tar выглядит следующим образом:
    tar [ОПЕРАЦИЯ_И_ПАРАМЕТРЫ] [ИМЯ_АРХИВА] [ИМЯ_ФАЙЛА(ФАЙЛОВ)]


    OPERATION
    Допускается и требуется только один аргумент операции. Наиболее часто используемые операции:
    --create (-c)
    Создайте новый архив tar.
    --extract (-x)
    Извлеките из архива весь архив целиком или один или несколько файлов.
    --list (-t)
    Отображение списка файлов, входящих в архив.

    OPTIONS
    Чаще всего используются следующие варианты:
    
    --verbose (-v)
    Отображение файлов, обрабатываемых командой tar .
    
    --file=archive-name (-f archive-name)
    Указывает имя архивного файла.
    
    ARCHIVE_NAME
    Название архива.
    
    FILE_NAME(S)
    Список имен файлов, разделенных пробелами, которые необходимо извлечь. Если список не указан, извлекается весь архив.
    

    #Создание архива tar -cvf archive.tar stuff #заархивировать сразу несколько каталогов, перечислим их через пробел tar -cvf archive.tar stuff1 stuff2 #извлечь архив с помощью tar: tar -xvf archive.tar #извлечь содержимое архива в определенную папку, мы используем -C tar -xvf archive.tar -C /tmp #создает tar-архив дерева подкаталогов и вызывает gzip для выполнения сжатия #исключение составляют скрытые файлы tar czvf archive_name.tar.gz *

    ( cd folder && tar -cf - . ) | ( cd test-folder && tar xpvf - )

    cd - переход из каталога в каталог
    && - все команды после будут выполнены только если будут успешно выполнены команды до оператора


    tar -сf - .
    -с - создание архива
    -f - задает файл архива
    - - в качестве файла архива задается stdout
    . - текущая директория и ее содержимое

    tar -xvpf -
    -x - разархивирование
    --delete - удалить файлы из архива
    -r - добавить файлы в существующий архив
    -A - добавить tar-файлы в существующий архив
    -t - список файлов в архиве
    -u - обновить архив
    -z - обработка архива с помощью gzip
    -j - обработка архива с помощью bzip2
    -v - подробный режим
    -p - сохранение владельца и прав
    -f - - файл архива stdin
    "-" - это не самостоятельный оператор bash, а скорее опция распознаваемая некоторыми утилитами linux, которые выводят результат своей работы в stdout или принмает ввод в stdin

    echo "test" | cat test # #В данном случае diff принимает с помощью "-" второй параметр cat file1 | diff file2 - #Что аналогично команде diff file2 file1
    gzip

    Утилита сжатия заменившая утилиту compress
    Для декомпрессии используется gunzip, что является эквивалентом gzip -d
    Для работы со сжатыми файлами используется zcat, который выводит результат своей работы на stdout, допускает пеенаправление вывода
    Эквивалент команды zcat является команда gzip -dc

    Сжатие с помощью tar

    Команда GNU tar, входящая в состав дистрибутивов Linux, позволяет создать .tar-архив, а затем сжать его с помощью gzip или bzip2-сжатия с помощью одной команды
    Хотя gzip-сжатие чаще всего используется для создания .tar.gz или .tgz файлов, tar также поддерживает bzip2-сжатие. Это позволяет создавать bzip2-сжатые файлы, которые часто называют .tar.bz2-, .tar.bz- или .tbz-файлами.


    gzip работает быстрее, но обычно сжимает файлы чуть хуже, поэтому размер файла получается немного больше. bzip2 работает медленнее, но сжимает файлы чуть лучше, поэтому размер файла получается немного меньше. В целом gzip и bzip2 практически не отличаются друг от друга и работают одинаково.

    #сжатый файл с использованием алгоритма gzip (-z). tar -czvf name-of-archive.tar.gz stuff #bzip2-сжатие #Для этого мы заменяем -z на -j bzip2: tar -cjvf name-of-archive.tar.bz stuff #Чтобы распаковать файл, мы заменяем -c на -x, где x означает «извлечь»: tar -xzvf archive.tar.gz

    gzip ФАЙЛ ДЛЯ СЖАТИЯ
    gzip
    создает сжатый файл с тем же именем, но с расширением .gz в конце.
    
    gzip
    удаляет исходные файлы после создания сжатого файла.
    
    Команда bzip2 работает аналогичным образом.
    
    Для распаковки файлов мы используем gunzip или bunzip2 в зависимости от алгоритма сжатия.
    

    bzip2

    Утилита сжатия, которая дает более высокую степень сжатия, но работает медленнее чем gzip
    Для декомпрессии используется bunzip2

    unarc, unarj, unrar

    Набор утилит предназначен для распаковки архивов DOS архиваторов rar

    Команда cpio

    cpio означает «вставить, скопировать». Используется для обработки архивных файлов, таких как *.cpio или *.tar файлы.
    cpio выполняет следующие операции:
    Копирование файлов в архив.
    Извлечение файлов из архива.

    #Чтобы создать архив cpio , мы используем: ls | cpio -o > archive.cpio # извлечь архив cpio -id < archive.cpio

    Для извлечения используется опция -i . Опция -d создает папку назначения. Символ < обозначает стандартный ввод. Извлекаемый входной файл — archive.cpio.


    Опция -o указывает cpio на необходимость создания выходного файла. В данном случае создается выходной файл archive.cpio. Команда ls выводит список содержимого текущего каталога, которое необходимо заархивировать.

    Команда dd

    dd копирует данные из одного места в другое

    #команда скопирует содержимое oldfile в newfile, где if= — входной файл, а of= — выходной dd if=oldfile of=newfile

    Команда dd обычно ничего не выводит на экран до тех пор, пока не завершит работу. Если указать параметр status=progress, консоль будет отображать объем работы, выполняемой командой. Например: dd status=progress if=oldfile of=newfile.


    dd Также используется для преобразования данных в верхний/нижний регистр или для записи непосредственно на блочные устройства, такие как /dev/sdb

    #скопирует все содержимое oldfile в newfile и сделает весь текст заглавными буквами dd if=oldfile of=newfile conv=ucase #команда создаст резервную копию всего жесткого диска, расположенного по адресу /dev/sda, в файл с именем backup.dd dd if=/dev/sda of=backup.dd bs=4096
    Источники
    Последнее изменение: 27.05.2026 15:37


    Связанные темы

    Команда exec linux

    Использование команды tee в Linux

    Язык shell в Linux

    Библиотеки Linux

    Использование md5sum

    Использование wget и curl в Linux

    Команда chattr и lsattr в Linux

    Использование awk Linux Alpine

    Использование sed в Linux

    Применение getopt в Linux

    Переменные окружения в Linux

    Командная оболочка Shell

    Классы символов в Linux

    Использование tar в Linux

    Подстановка имен файлов

    Проверка на необходимость перезапуска после обновления пакетов

    Стандартные потоки и перенаправление ввода/вывода в Linux

    Функции в языке Shell

    Использование grep в Linux

    Использование find Linux

    Полезные команды и скрипты Linux

    Переменные в Linux

    Использование регулярных выражений в Linux

    Условная конструкция if в Linux

    Использование grep в Linux

    Использование xargs в Linux

    Фигурные скобки в bash

    Циклы в языке shell

    Использование оператора select в языке shell

    Внутренние и внешние команды linux

    Использование конструкции case в Linux

    Подстановка команд в Linux

    Compression and Decompression Nginx

    Мониторинг системы Linix с помощью getconf

    Использование ANCI последовательностей в Linux

    Здесь пока нет комментариев
    Добавлять комментарии могут только авторизованные пользователи

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ