Zip linux без папки

Содержание
  1. Примеры использования zip и unzip в linux
  2. Установка zip и unzip:
  3. Пример использования утилиты zip
  4. Как заархивировать файлы и каталоги в Linux
  5. zip Команда
  6. Установите Zip в Ubuntu и Debian
  7. Установите Zip на CentOS и Fedora
  8. Как архивировать файлы и каталоги
  9. Методы и уровни сжатия
  10. Создание ZIP-файла, защищенного паролем
  11. Создание разделенного Zip-файла
  12. Примеры ZIP
  13. Выводы
  14. Архивация zip без сохранения полного пути
  15. Практические примеры команды zip
  16. Есть много вещей, которые вы можете сделать с помощью команды Linux zip
  17. Как создать архив всех файлов в папке
  18. Как включить скрытые файлы в архив
  19. Как архивировать все файлы и подпапки в Zip-файле
  20. Как добавить новые файлы в существующий архивный архив
  21. Как обновить существующие файлы в заархивированном архиве
  22. Как удалить файлы из архива
  23. Как скопировать файлы из одного Zip-файла в другой
  24. Как использовать Pattern Matching и Piping для создания архива
  25. Как создать сплит архив
  26. Как настроить отчет о ходе процесса архивирования
  27. Как исправить файл Zip
  28. Как зашифровать архив
  29. Как показать, что будет в архиве
  30. Как проверить архив
  31. Как исключить файлы
  32. Как указать уровень сжатия

Примеры использования zip и unzip в linux

Сегодня я хотел сделать пост памятку по работе в Unix подобных системах с утилитами zip и unzip. Также рассмотреть несколько интересных команд, которые могут пригодиться для работы.

Установка zip и unzip:

В системе Debian/Ubuntu.

В системе Red Hat Linux/Fedora/CentOS.

Пример использования утилиты zip

Пример 1: Создания архива из указанных файлов и папок

Пример 2: Создания архива текущего каталога (архив создается без подкаталогов)

Пример 3: Создания архива включая все подкаталоги используем ключ -r

Создает архив без скрытых файлов/каталог это файлы/каталоги начинающиеся с .

Создает архив с скрытыми файлами и каталогами

Пример 4: Чтобы сжать быстро используйте -1, но для более лучшего сжатие используйте -9

Пример 5: Опция -x позволяет исключать файлы и каталоги из архива

Пример 6: Также опция -x позволяет исключать файлы и каталоги по шаблону

Таким способом я исключаю все каталоги заканчивающихся на ted и файлы расширения xml

Пример 7: Разбиваем архив на части с помощью опции -s

Также есть возможность указать опцию размера части архива в: k (KB), m (MB), g (GB), t (TB)

Пример 8: Задать пароль можно опцией -e или опцией -P .

Пример 9: Выбрать только указанные файлы/каталоги

Пример 10: Удаление файлов из созданного архива

Пример 11: Обновить содержимое созданного архива

Пример 11: Тихий режим (Полезно, например, в сценариях оболочки и фоновых задач)

Пример 12: Извлечь все содержимое архива

Пример 13: Извлечь все содержимое архива в указанную директорию

Пример 14: Показать содержимое архива

Пример 15: Извлечь конкретный файл из архива

Источник

Как заархивировать файлы и каталоги в Linux

Zip — это наиболее широко используемый формат архивных файлов, поддерживающий сжатие данных без потерь.

Zip-файл — это контейнер данных, содержащий один или несколько сжатых файлов или каталогов. Сжатые (заархивированные) файлы занимают меньше места на диске, их можно перенести с одного компьютера на другой быстрее, чем несжатые файлы. Zip-файлы можно легко извлечь в Windows, macOS и Linux с помощью утилит, доступных для всех операционных систем.

В этом руководстве мы покажем вам, как архивировать (сжимать) файлы и каталоги в Linux с помощью команды zip .

zip Команда

zip — это утилита командной строки, которая помогает создавать Zip-архивы.

Команда zip имеет следующий синтаксис:

Чтобы создать Zip-архив в определенном каталоге, пользователю необходимо иметь права на запись в этот каталог.

Zip-файлы не поддерживают информацию о владельце в стиле Linux. Извлеченные файлы принадлежат пользователю, выполняющему команду.

Чтобы сохранить право собственности на файл и права доступа, используйте команду tar .

Утилита zip не устанавливается по умолчанию в большинстве дистрибутивов Linux, но вы можете легко установить ее с помощью диспетчера пакетов вашего дистрибутива.

Установите Zip в Ubuntu и Debian

Установите Zip на CentOS и Fedora

Как архивировать файлы и каталоги

Чтобы заархивировать один или несколько файлов, укажите файлы, которые вы хотите добавить в архив, через пробел, как показано ниже:

По умолчанию команда zip печатает имена файлов, добавленных в архив, и метод сжатия. Мы объясним методы и уровень сжатия позже в этом руководстве.

При указании имени архива Zip, если вы опускаете расширение .zip оно будет добавлено автоматически, если имя архива не содержит точки. zip archivename.zip filename создаст архив с тем же именем, что и zip archivename filename .

Читайте также:  Windows синхронизация файлов сети

Чтобы подавить вывод команды zip , используйте параметр -q :

Часто вы создаете Zip-архив каталога, включающего содержимое подкаталогов. Параметр -r позволяет рекурсивно просматривать всю структуру каталогов.

Чтобы создать Zip-архив каталога, вы должны использовать:

Вы также можете добавить несколько файлов и каталогов в один архив:

Методы и уровни сжатия

Метод сжатия Zip по умолчанию — deflate . Если утилита zip определяет, что файл нельзя сжать, она просто сохраняет файл в архиве, не сжимая его с помощью метода store . В большинстве дистрибутивов Linux утилита zip также поддерживает метод сжатия bzip2 .

Чтобы указать метод сжатия, используйте параметр -Z .

Команда zip позволяет указать уровень сжатия с помощью числа с префиксом от 0 до 9. Уровень сжатия по умолчанию -6 . При использовании -0 все файлы будут сохраняться без сжатия. -9 заставит команду zip использовать оптимальное сжатие для всех файлов.

Например, чтобы использовать уровень сжатия -9 , введите что-то вроде этого:

Чем выше уровень сжатия, тем интенсивнее процесс архивирования, и для его завершения потребуется больше времени.

Создание ZIP-файла, защищенного паролем

Если у вас есть конфиденциальная информация, которую необходимо сохранить в архиве, вы можете зашифровать ее с помощью параметра -e :

Вам будет предложено ввести и подтвердить пароль архива:

Создание разделенного Zip-файла

Представьте, что вы хотите сохранить Zip-архив на сервисе хостинга файлов, который имеет ограничение на размер загружаемого файла 1 ГБ, а ваш Zip-архив — 5 ГБ.

Вы можете создать новый разделенный Zip-файл, используя параметр -s с указанием размера. Множитель может быть k (килобайты), m (мегабайты), g (гигабайты) или t (терабайты).

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

Примеры ZIP

Создайте Zip-архив с именем archivename.zip, содержащий все файлы в текущем каталоге.

То же, что и выше, включая скрытые файлы (файлы, начинающиеся с точки):

Создайте Zip-архив с именем archivename.zip содержащий все файлы MP3 в текущем каталоге, без сжатия файлов.

Выводы

В Linux вы можете создавать Zip-архивы с помощью команды zip .

Чтобы распаковать ZIP-архив в системе Linux, вы можете использовать команду unzip .

Если вы хотите узнать больше о Zip, посетите страницу Zip Man .

Источник

Архивация zip без сохранения полного пути

Мне надо архивировать несколько директорий с помощью команды zip. Пусть этими директориями будут /home/user/dir1 и /home/user/dir2. В команду я вставляю полные пути (это важно, т.к. команду я хочу вставить в скрипт). После архивации я открываю архив и вижу там директорию home, в ней директорию user и лишь в ней нужные мне dir1 и dir2. Как сделать чтобы лишние директории не сохранялись и при открытии сразу были dir1 и dir2, прямо в корне архива? Я понимаю, что можно в скрипте сохранить текущую директорию, перейти туда где лежит архивируемая директория и архивировать от туда, но неужели у zip нет подходящего аргумента, чтобы не усложнять скрипт?

Заменил zip на 7z. Теперь всё работает как я хочу, хотя я немного разочарован, что в zip не нашлось такого аргумента.

-j —junk-paths Store just the name of a saved file (junk the path), and do not store directory names. By default, zip will store the full path (relative to the current directory).

просто читать надо уметь. разочарован он.

просто читать надо уметь. разочарован он.

–junk-paths вывалит в архив фарш из файлов вообще игнорируя пути. А ТСу нужно отсечь префикс пути, но сохранить структуру каталогов.

Похоже, поучиться читать нужно не ТСу.

Так сам бы попробовал этот аргумент. Он просто удаляет ВСЕ директории и скидывает все файлы со всех директорий в корень архива. Мне не надо убирать иерархию совсем, я просто хочу чтобы она начиналась нужного места, а не от корня.

Прежде чем что-то писать, сам бы почитал, что оно делает, неуч. ТСу нужен переход в директорию перед архивированием, так же как с tar -C , но в zip такой нет, поэтому только костылять предварительный переход по абсолютному пути с cd , а потом архивация.

то есть ты хочешь магическую опцию, которая отрежет тебе /home/user/ от /home/user/dir1 и /home/user/dir2, иными словами чтобы ты смог запустить zip —option=/home/user/ blah-blah. волшебная опция в таком случае – cd &&.

нет смысла передавать zip ровно то, что ты можешь передать cd.

tar -C – это лучший способ выстрелить себе в ногу, какой только можно придумать с таром, единственное её допустимое использование -C /

Читайте также:  Код безопасности для windows

Источник

Практические примеры команды zip

Есть много вещей, которые вы можете сделать с помощью команды Linux zip

Существует несколько различных способов сжатия файлов с помощью командной строки Linux. Эта статья содержит практические примеры, которые показывают, как использовать команду zip для сжатия и организации файлов в вашей файловой системе.

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

Если у вас есть 10 файлов размером 100 мегабайт, и вам нужно перенести их на FTP-сайт, передача может занять значительное время в зависимости от скорости вашего процессора. Если вы сжимаете все 10 файлов в один заархивированный архив, и сжатие уменьшает размер файла до 50 МБ на файл, то вам нужно только передать половину данных.

Как создать архив всех файлов в папке

Представьте, что у вас есть папка песен со следующими MP3-файлами:

Шоссе AC/DC в ад

Люблю голодного мужчину.mp3

Прогуляйся по тебе.mp3

Если тебе нужна кровь, ты ее получишь .mp3

Покажите вниз в огне.mp3

Сенсорный слишком много .mp3

Биение вокруг bush.mp3

Girls Got Rhythm.mp3

Эта простая команда Linux, которая иллюстрирует, как создать архив всех файлов в текущей папке с именем ACDC_Highway_to_Hell.zip:

Текст прокручивается вверх по экрану, показывая файлы по мере их добавления.

Как включить скрытые файлы в архив

Предыдущая команда хороша для архивирования всех файлов в папке, но она включает только файлы, которые не скрыты. Это не всегда так просто. Представьте, что вы хотите сжать домашнюю папку, чтобы ее можно было сохранить на USB-накопитель или внешний жесткий диск. Ваша домашняя папка содержит скрытые файлы.

Чтобы сжать все файлы, включая скрытые файлы в папке, выполните следующую команду:

Это создает файл с именем home.zip со всеми файлами в домашней папке. (Вы должны быть в домашней папке, чтобы это работало). Проблема этой команды в том, что она включает в себя только файлы в домашней папке, а не в папках, что приводит нас к следующему примеру.

Как архивировать все файлы и подпапки в Zip-файле

Чтобы включить все файлы и подпапки в архив, выполните следующую команду:

Как добавить новые файлы в существующий архивный архив

Если вы хотите добавить новые файлы в существующий архив или обновить файлы в архиве, используйте то же имя для файла архива при запуске команды zip.

Например, представьте, что у вас есть музыкальная папка с четырьмя альбомами в ней, и вы создаете архив с именем music.zip для хранения в качестве резервной копии. А теперь представьте, через неделю вы скачаете два новых альбома. Чтобы добавить новые альбомы в zip-файл, просто запустите ту же команду zip, что и на предыдущей неделе.

Для создания оригинального музыкального архива запустите следующий код:

zip -r music/home/yourname/music/

Чтобы добавить новые файлы в архив, снова запустите ту же команду.

Если в zip-файле содержится список файлов, а один из файлов на диске изменился, то исправленный файл обновляется в zip-файле.

Как обновить существующие файлы в заархивированном архиве

Если у вас есть zip-файл, который должен каждый раз содержать одни и те же имена файлов, и вы хотите обновить этот файл любыми изменениями, внесенными в эти файлы, то переключатель -f поможет вам сделать это. ,

Например, представьте, что у вас есть заархивированный файл со следующими файлами:

Теперь представьте, что в течение недели вы добавили два новых файла и изменили два файла так, чтобы папка/home/yourname/documents теперь выглядела так:

/home/ваше имя/документы/file4 (обновлено)

/home/ваше имя/документы/file5 (обновлено)

Когда вы выполните следующую команду, zip-файл будет содержать обновленные файлы (file4 и file5), но file7 и file8 не будут добавлены.

zip zipfilename -f -r/home/yourname/documents

Как удалить файлы из архива

Итак, вы создали большой zip-файл с сотнями файлов и теперь понимаете, что в zip-файле есть четыре или пять файлов, которые вам там не нужны. Без необходимости снова архивировать все эти файлы, вы можете просто запустить команду zip с переключателем -d следующим образом:

zip zipfilename -d [имя файла в архиве]

Например, если у вас есть файл в архиве с именем home/documents/test.txt, вы удалите его с помощью этой команды:

zip zipfilename -d home/documents/test.txt

Как скопировать файлы из одного Zip-файла в другой

Если у вас есть файлы в одном zip-файле, и вы хотите скопировать их в другой zip-файл, не извлекая их сначала и не разархивируя, используйте переключатель -u .

Читайте также:  Smb ����������� astra linux

Предположим, у вас есть zip-файл с именем «Variousmusic.zip» с музыкой от разных исполнителей, одним из которых является AC/DC. Вы можете скопировать песни AC/DC из файла Variousmusic.zip в файл ACDC.zip, используя следующую команду:

zip Variousmusic.zip -U —out ACDC.zip «Back_In_Black.mp3»

Приведенная выше команда копирует файл «Back_In_Black.mp3» из различных музыкальных файлов.zip в ACDC.zip. Если zip-файл, в который вы копируете, не существует, он создается.

Как использовать Pattern Matching и Piping для создания архива

Следующий переключатель действительно полезен, потому что он позволяет вам использовать выходные данные других команд для вставки файлов в ваш zip-файл. Предположим, вы хотите создать файл с именем lovesongs.zip, который содержит каждую песню, в названии которой есть слово «любовь».

Чтобы найти файлы с любовью в заголовке, вы можете использовать следующую команду:

find/home/yourname/Music -name * love *

Приведенная выше команда не идеальна на 100 процентов, потому что она также подбирает слова типа «клевер», но вы поняли идею. Чтобы добавить все возвращенные результаты из вышеприведенной команды в zip-файл с именем lovesongs.zip, выполните эту команду:

find/home/yourname/Music -name * love * | zip lovesongs.zip — @

Как создать сплит архив

Если вы создаете резервную копию своего компьютера, но единственный носитель, на который у вас есть резервные копии, – это набор чистых DVD-дисков, у вас есть выбор. Вы можете сохранять файлы до тех пор, пока размер zip-файла не достигнет 4,8 гигабайта, и записать DVD-диск или создать нечто, называемое разделенным архивом, который продолжает создавать новые архивы в наборе после того, как он достигнет установленного вами предела.

zip mymusic.zip -r/home/myfolder/Music -s 670 м

Как настроить отчет о ходе процесса архивирования

Существуют различные способы настройки вывода, который появляется во время выполнения архивирования.

Доступны следующие переключатели:

  • -db = показывает, сколько байтов было заархивировано и сколько осталось
  • -dc = отображает количество заархивированных файлов и сколько их осталось
  • -dd = отображает точки для каждых 10 МБ файла, который был заархивирован
  • -ds = устанавливает частоту появления точек
  • -du = отображает несжатый размер каждого файла

zip myzipfilename.zip -dc -r/home/music

Как исправить файл Zip

Если у вас поврежден zip-архив, вы можете попытаться исправить его с помощью команды -F , а в случае неудачи – команды FF .

Это полезно, если вы создали разделенный архив с помощью переключателя -s и потеряли один из файлов архива.

Например, попробуйте сначала это:

zip -F myfilename.zip —out myfixedfilename.zip

zip -FF myfilename.zip —out myfixedfilename.zip

Как зашифровать архив

Если у вас есть конфиденциальная информация, которую вы хотите сохранить в zip-файле, используйте команду -e для ее шифрования. Вас попросят ввести пароль и повторить пароль.

zip myfilename.zip -r/home/wikileaks -e

Как показать, что будет в архиве

Если вы знаете, что собираетесь создавать большой архив, убедитесь, что в zip-файл будут добавлены правильные файлы. Вы можете увидеть ожидаемые результаты команды zip, указав переключатель sf .

zip myfilename.zip -r/home/music/-sf

Как проверить архив

После резервного копирования файлов в zip-файл заманчиво сэкономить место на диске, удалив исходные файлы. Прежде чем сделать это, рекомендуется проверить работоспособность zip-файла.

Вы можете использовать переключатель -T для проверки правильности zip-файла.

zip myfilename.почтовый индекс -T

Вывод этой команды, когда архив недействителен, может выглядеть примерно так:

  • предупреждение zip: отсутствует подпись конца – вероятно, не zip-файл

Помните, что вы можете попробовать команду -F, чтобы исправить поврежденные zip-файлы.

Стоит отметить, что -T может выдавать ложные срабатывания в том смысле, что он говорит, что zip-файл поврежден, хотя при его открытии вы можете извлечь все файлы.

Как исключить файлы

Иногда вы хотите исключить определенные файлы из zip-файла. Например, если вы копируете файлы со своего телефона или цифровой камеры, у вас есть смесь видео и изображений. Возможно, вы захотите сжать фотографии в photos.zip и видео в videos.zip.

Вот один из способов исключить видео при создании photos.zip

zip photos.zip -r/home/photos/-x * .mp4

Как указать уровень сжатия

Когда вы сжимаете файлы в zip-файл, система решает, следует ли сжимать файл или просто сохранить его. Например, файлы MP3 уже сжаты, поэтому нет смысла их дополнительно сжимать; они обычно хранятся как внутри zip-файла.

Однако вы можете указать уровень сжатия от 0 до 9 для дальнейшего сжатия файла. Это занимает больше времени, но может значительно сэкономить место.

Источник

Оцените статью