[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-rabota-v-cli-bash-kak-arkhivirovat-i-szhimat-fayly":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":18,"progress":19,"seo":20},167,"kak-arkhivirovat-i-szhimat-fayly",4,"rabota-v-cli-bash","Работа в CLI (Bash)","💻","Как архивировать и сжимать файлы?","**Архивация** — это объединение нескольких файлов и директорий в один файл (архив), а **сжатие** — уменьшение размера данных с помощью алгоритма компрессии. В Linux эти операции часто разделены: `tar` архивирует, а `gzip`\u002F`bzip2`\u002F`xz` сжимают, хотя `tar` умеет вызывать их автоматически.\n\n### tar (Tape Archive) — архивация\n\n```bash\n# Создать архив\ntar -cf archive.tar dir\u002F          # -c create, -f file\ntar -cf archive.tar file1 file2   # Несколько файлов\n\n# Создать архив с gzip-сжатием (.tar.gz или .tgz)\ntar -czf archive.tar.gz dir\u002F      # -z = gzip\n\n# Создать архив с bzip2-сжатием (.tar.bz2)\ntar -cjf archive.tar.bz2 dir\u002F     # -j = bzip2\n\n# Создать архив с xz-сжатием (.tar.xz)\ntar -cJf archive.tar.xz dir\u002F      # -J = xz\n\n# Просмотреть содержимое архива\ntar -tf archive.tar.gz             # -t = list\ntar -tvf archive.tar.gz            # С подробной информацией\n\n# Распаковать\ntar -xf archive.tar.gz             # -x = extract (автоопределение сжатия)\ntar -xf archive.tar.gz -C \u002Fopt\u002F    # Распаковать в конкретную директорию\ntar -xf archive.tar.gz file.txt    # Извлечь конкретный файл\n\n# Verbose (показать процесс)\ntar -xvf archive.tar.gz            # -v = verbose\n```\n\n> **Мнемоника для tar:** **c**reate, e**x**tract, lis**t**, **z** = gzip, **j** = bzip2, **J** = xz, **f** = file.\n\n### gzip \u002F gunzip — сжатие отдельных файлов\n\n```bash\ngzip file.txt                     # Сжать → file.txt.gz (оригинал удаляется!)\ngzip -k file.txt                  # Сжать, сохранив оригинал (-k = keep)\ngzip -9 file.txt                  # Максимальное сжатие (медленнее)\ngunzip file.txt.gz                # Распаковать\ngzip -d file.txt.gz               # Распаковать (альтернатива)\nzcat file.txt.gz                  # Просмотреть сжатый файл без распаковки\n```\n\n### zip \u002F unzip — формат ZIP (кроссплатформенный)\n\n```bash\nzip archive.zip file1 file2       # Создать ZIP\nzip -r archive.zip directory\u002F     # Рекурсивно (-r)\nzip -e archive.zip file.txt       # С паролем (-e)\nunzip archive.zip                 # Распаковать\nunzip archive.zip -d \u002Fopt\u002F        # Распаковать в конкретную директорию\nunzip -l archive.zip              # Просмотреть содержимое\nunzip -o archive.zip              # Перезаписать без подтверждений\n```\n\n### Сравнение алгоритмов сжатия\n\n| Алгоритм | Скорость сжатия | Степень сжатия | Распространённость |\n|---|---|---|---|\n| gzip | Быстрый | Средняя | Самый распространённый в Linux |\n| bzip2 | Медленный | Хорошая | Устаревает, заменяется на xz |\n| xz | Самый медленный | Лучшая | Ядро Linux, пакеты дистрибутивов |\n| zip | Быстрый | Средняя | Кроссплатформенный стандарт |\n\n### Практические примеры\n\n```bash\n# Архивация логов старше 30 дней\nfind \u002Fvar\u002Flog\u002Fapp -name \"*.log\" -mtime +30 -exec gzip {} \\;\n\n# Бэкап проекта с исключениями\ntar -czf backup.tar.gz \\\n    --exclude='target' \\\n    --exclude='.git' \\\n    --exclude='node_modules' \\\n    project\u002F\n\n# Распаковка Spring Boot fat JAR (JAR — это ZIP-архив)\nunzip -l app.jar\nunzip app.jar -d extracted\u002F\n```\n\n> **На собеседовании:** достаточно уверенно владеть `tar -czf` \u002F `tar -xf` и знать разницу между архивацией и сжатием. Полезно упомянуть, что JAR\u002FWAR-файлы Java — это ZIP-архивы, и их можно исследовать через `unzip -l`.\n\n---","","junior",[15,16,17],"linux","bash","архивация",[],null,{"title":21,"description":22,"ogTitle":21,"ogDescription":23,"keywords":24,"schemaAnswer":34,"featuredSnippetReady":35},"Архивация и сжатие файлов: tar, gzip, zip в Linux -- Gymterview","Как архивировать и сжимать файлы в Linux? Команды tar, gzip, zip\u002Funzip. Форматы tar.gz, tar.bz2, tar.xz. Практические примеры бэкапа проектов и ротации логов.","Подробный разбор архивации и сжатия файлов в Linux: tar, gzip, zip с мнемоникой флагов и практическими примерами.",[25,26,27,28,29,30,31,32,33],"tar","gzip","zip","unzip","архивация Linux","сжатие файлов","tar.gz","bzip2","xz","tar -- основной инструмент архивации: -c создаёт архив, -x распаковывает, -t показывает содержимое, -f указывает файл. Сжатие: -z (gzip, .tar.gz), -j (bzip2, .tar.bz2), -J (xz, .tar.xz). gzip\u002Fgunzip сжимают отдельные файлы, с флагом -k сохраняют оригинал. zip\u002Funzip -- кроссплатформенный формат, -r для рекурсивной архивации директорий. Практические примеры: бэкап проекта с исключением target и .git (tar -czf backup.tar.gz --exclude='target' project\u002F), архивация старых логов через find с gzip.",true]