Linux zip только файлы

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

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

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

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

zip Команда

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

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

zip OPTIONS ARCHIVE_NAME FILES 

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

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

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

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

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

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

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

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

zip archivename.zip filename1 filename2 filename3
adding: filename1 (deflated 63%) adding: filename2 (stored 0%) adding: filename3 (deflated 38%) 

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

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

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

zip -q archivename.zip filename1 filename2 filename3

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

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

zip -r archivename.zip directory_name

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

zip -r archivename.zip directory_name1 directory_name2 file1 file1

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

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

Читайте также:  Редактировать файлы linux mint

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

zip -r -Z bzip2 archivename.zip directory_name
. adding: sub_dir/ (stored 0%) adding: sub_dir/file1 (bzipped 52%) adding: sub_dir/file2 (bzipped 79%) 

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

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

zip -9 -r archivename.zip directory_name

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

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

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

zip -e archivename.zip directory_name

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

Enter password: Verify password: 

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

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

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

zip -s 1g -r archivename.zip directory_name

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

archivename.zip archivename.z01 archivename.z02 archivename.z03 archivename.z04 

Примеры ZIP

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

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

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

Выводы

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

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

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

Источник

команда zip в linux как заставить zip архивировать только файлы, а не всю структуру каталогов?

Я хочу просто глупую, простую вещь. ZIP все содержимое данного каталога.

что я получаю в результате:

zip -r /home/andi/MEDIA_DUMPS/xyz_media.zip /home/andi/xyz/mega_backend/mega_www/media 
➜ home tree -L 5 . └── andi └── xyz └── mega_backend └── mega_www └── media ├── csv ├── editor └── img 
➜ media tree -L 1 . ├── csv ├── editor └── img 

МОЙ СПЕЦИАЛЬНЫЙ СПОСОБ ИСПОЛЬЗОВАНИЯ TAR:

tar -cjf /home/andi/MEDIA_DUMPS/xyz_media.tar.gz -C /home/andi/xyz/mega_backend/mega_www/media . 

Количество просмотров материала

21.11.2022 8:04 2466

Распечатать страницу

3 ответа

как архивировать только файлы, а не всю структуру каталогов?

использовать -j опции (ненужных-пути).

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). 

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

вы можете использовать опцию-j, чтобы оставить пути, как в:

zip -j foo foo/*

найти /домашний/Анди/ской/серверной/медиа -тип Ф-принт | зип-J имя.zip -@

найти ищет файлы и трубы их zip. — j означает мусор путь & — @ говорит zip читать из стандартного ввода.

Читайте также:  Параметры сетевых настроек linux

Zip command is: zip -jr /home/jack/Desktop/Backup/20180314/032256.zip /home/jack/Desktop/bopy` 

, который создает zip-файл без всей папки в нем. Флаг «-jr» или «zip-j-r». промелькнуть./ ./..»

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Похожие вопросы про тегам:

  • 7 Какое максимальное количество разделов можно создать на жестком диске?
  • 3 Таблица прилипает к верхней части страницы, как ее удалить?
  • 6 При двусторонней печати как исправить, что задняя страница печатается вверх ногами?
  • 4 Как превратить оглавление в простой форматированный текст?
  • 5 Что значит 1Rx8 и 2Rx8 для оперативной памяти и совместимы ли они?
  • 10 Копирование и вставка в Windows PowerShell
  • 13 Сочетание клавиш для сворачивания удаленного рабочего стола
  • 1 Как включить фон рабочего стола на удаленном компьютере?
  • 5 Как сделать ярлык на рабочем столе доступным для всех пользователей в Windows 10
  • 1 Зачем Windows 10 нужна служба очереди сообщений и почему она установлена по умолчанию?
  • Наушники Wireless и True Wireless: чем они отличаются?
  • Не включается iPad: причины и решения проблемы
  • Как ускорить передачу данных по Bluetooth
  • Как правильно приобрести подержанный iPhone?
  • Каковы преимущества фотоэлектрической системы?
  • 5 лучших USB–пылесосов для клавиатуры
  • Как выбрать чехол-аккумулятор для смартфона
  • Мобильный телефон Razr: новая складная раскладушка от Motorola стоит 1200 евро
  • Компания Nothing: смартфон Phone 2 должен быть «более премиальным» и выйти в этом году
  • UMTS — История технологии сотовой связи
  • Выбор домена
  • 3D-печать: будущее массового производства
  • Искусственный интеллект в малом бизнесе: как улучшить эффективность и конкурентоспособность
  • Ошибки, которых стоит избегать при продвижении сайта
  • Высокие технологии в Windows: что это такое и как их использовать в своих приложениях
  • Кредитный онлайн калькулятор: надежный помощник в финансовом планировании
  • Кредитные карты банков
Apple $173,24 +0,81%
Amazon $114,49 -1,94%
Microsoft $325,19 +3,61%
Google $123,44 +2,11%
Netflix $364,74 -0,03%
Intel $27,45 -5,34%
Facebook $254,49 +2,11%
Tesla $185,54 +1,44%
Tencent $322,40 -3,01%

Идите уверенно по направлению к мечте. Живите той жизнью, которую вы сами себе придумали.

Источник

Create zip file and ignore directory structure

This works, but the created zip file creates a directory structure mimicking the directory to the raw file. It is a lot of extra folders that I don’t need. I didn’t find an answer in a cursory glance over the man page or a Google hunt.

I was thinking this question predated all of those other stack exchanges but alas superuser’s post actually is older than this one. If there is something I can do here to help let me know. This must be quite the hot answer since google still drives so much traffic here. 😀

7 Answers 7

-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). 

Using -j won’t work along with the -r option.
So the work-around for it can be this:

cd path/to/parent/dir/; zip -r complete/path/to/name.zip ./* ; cd -; 
cd path/to/parent/dir/ && zip -r complete/path/to/name.zip ./* && cd - 

you can direct the output to /dev/null if you don’t want the cd — output to appear on screen

Читайте также:  Где лежат образы docker linux

Actually, you might want do the following: cd path/to/parent/dir/ && zip -r ../../../../name.zip ./* && cd —

@eddyP23 How does it make any difference ? Rather it will cause you to add no. of parentDir(..) for each directory in the path 😐

The result is the same, I agree. But in automated scripts that run in many different environments, you usually avoid global paths, because you have no idea what the global path will be. But from the cd path/to/parent/dir/ you can calculate number of double dots ../ easily.

 -j 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 path). 

Somewhat related — I was looking for a solution to do the same for directories. Unfortunately the -j option does not work for this 🙁

Alternatively, you could create a temporary symbolic link to your file:

ln -s /data/to/zip/data.txt data.txt zip /dir/to/file/newZip !$ rm !$ 

This works also for a directory.

Retain the parent directory so unzip doesn’t spew files everywhere

When zipping directories, keeping the parent directory in the archive will help to avoid littering your current directory when you later unzip the archive file

So to avoid retaining all paths, and since you can’t use -j and -r together ( you’ll get an error ), you can do this instead:

cd path/to/parent/dir/; zip -r ../my.zip "../$(basename "$PWD")" cd -; 

The «../$(basename «$PWD»)» is the magic that retains the parent directory.

So now unzip my.zip will give a folder containing all your files:

parent-directory ├── file1 ├── file2 ├── dir1 │ ├── file3 │ ├── file4 

Instead of littering the current directory with the unzipped files:

file1 file2 dir1 ├── file3 ├── file4 

However in the ZIP archive an additional unwanted parent directory /../ is created, like /../parent/sub/

Just use the -jrm option to remove the file and directory structures

zip -jrm /path/to/file.zip /path/to/file 

be carefull, -m —move Move the specified files into the zip archive; actually, this deletes the target directories/files after making the specified zip archive. If a directory becomes empty after removal of the files, the directory is also removed. No deletions are done until zip has created the archive without error. This is useful for conserving disk space, but is potentially dangerous so it is recommended to use it in combination with -T to test the archive before removing all input files.

The «-m» flag being on this could HUGELY impact people, possibly even give a couple scares, or even worse, loss of data (without, for example, the -T flag as the commenter above mentioned). -1

Источник

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