- Как заархивировать файлы и каталоги в Linux
- zip Команда
- Установите Zip в Ubuntu и Debian
- Установите Zip на CentOS и Fedora
- Как архивировать файлы и каталоги
- Методы и уровни сжатия
- Создание ZIP-файла, защищенного паролем
- Создание разделенного Zip-файла
- Примеры ZIP
- Выводы
- команда zip в linux как заставить zip архивировать только файлы, а не всю структуру каталогов?
- 3 ответа
- как архивировать только файлы, а не всю структуру каталогов?
- zip: упаковка и сжатие (архив) файлов
- Ваш ответ
- Опубликуйте как Гость или авторизуйтесь
- Похожие вопросы про тегам:
- Create zip file and ignore directory structure
- 7 Answers 7
- Retain the parent directory so unzip doesn’t spew files everywhere
Как заархивировать файлы и каталоги в 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 .
Чтобы указать метод сжатия, используйте параметр -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 читать из стандартного ввода.
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% | |
$123,44 | +2,11% | ||
Netflix | $364,74 | -0,03% | |
Intel | $27,45 | -5,34% | |
$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
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