- Есть много вещей, которые вы можете сделать с помощью команды Linux zip
- Как создать архив всех файлов в папке
- Как включить скрытые файлы в архив
- Как архивировать все файлы и подпапки в Zip-файле
- Как добавить новые файлы в существующий архивный архив
- Как обновить существующие файлы в заархивированном архиве
- Как удалить файлы из архива
- Как скопировать файлы из одного Zip-файла в другой
- Как использовать Pattern Matching и Piping для создания архива
- Как создать сплит архив
- Как настроить отчет о ходе процесса архивирования
- Как исправить файл Zip
- Как зашифровать архив
- Как показать, что будет в архиве
- Как проверить архив
- Как исключить файлы
- Как указать уровень сжатия
Есть много вещей, которые вы можете сделать с помощью команды Linux zip
Существует несколько различных способов сжатия файлов с помощью командной строки Linux. Эта статья содержит практические примеры, которые показывают, как использовать команду zip для сжатия и организации файлов в вашей файловой системе.
Сжатые файлы используются, когда вам нужно сэкономить место и копировать большие файлы из одного места в другое.
Если у вас есть 10 файлов размером 100 мегабайт, и вам нужно перенести их на FTP-сайт, передача может занять значительное время в зависимости от скорости вашего процессора. Если вы сжимаете все 10 файлов в один заархивированный архив, и сжатие уменьшает размер файла до 50 МБ на файл, то вам нужно только передать половину данных.
Как создать архив всех файлов в папке
Представьте, что у вас есть папка песен со следующими MP3-файлами:
Шоссе AC/DC в ад
Ночной Prowler.mp3
Люблю голодного мужчину.mp3
Get It Hot.mp3
Прогуляйся по тебе.mp3
Шоссе в ад.mp3
Если тебе нужна кровь, ты ее получишь .mp3
Покажите вниз в огне.mp3
Сенсорный слишком много .mp3
Биение вокруг bush.mp3
Girls Got Rhythm.mp3
Эта простая команда Linux, которая иллюстрирует, как создать архив всех файлов в текущей папке с именем ACDC_Highway_to_Hell.zip:
zip ACDC_Highway_to_Hell *
Текст прокручивается вверх по экрану, показывая файлы по мере их добавления.
Как включить скрытые файлы в архив
Предыдущая команда хороша для архивирования всех файлов в папке, но она включает только файлы, которые не скрыты. Это не всегда так просто. Представьте, что вы хотите сжать домашнюю папку, чтобы ее можно было сохранить на USB-накопитель или внешний жесткий диск. Ваша домашняя папка содержит скрытые файлы.
Чтобы сжать все файлы, включая скрытые файлы в папке, выполните следующую команду:
почтовый индекс *. *
Это создает файл с именем home.zip со всеми файлами в домашней папке. (Вы должны быть в домашней папке, чтобы это работало). Проблема этой команды в том, что она включает в себя только файлы в домашней папке, а не в папках, что приводит нас к следующему примеру.
Как архивировать все файлы и подпапки в Zip-файле
Чтобы включить все файлы и подпапки в архив, выполните следующую команду:
zip -r home.
Как добавить новые файлы в существующий архивный архив
Если вы хотите добавить новые файлы в существующий архив или обновить файлы в архиве, используйте то же имя для файла архива при запуске команды zip.
Например, представьте, что у вас есть музыкальная папка с четырьмя альбомами в ней, и вы создаете архив с именем music.zip для хранения в качестве резервной копии. А теперь представьте, через неделю вы скачаете два новых альбома. Чтобы добавить новые альбомы в zip-файл, просто запустите ту же команду zip, что и на предыдущей неделе.
Для создания оригинального музыкального архива запустите следующий код:
zip -r music/home/yourname/music/
Чтобы добавить новые файлы в архив, снова запустите ту же команду.
Если в zip-файле содержится список файлов, а один из файлов на диске изменился, то исправленный файл обновляется в zip-файле.
Как обновить существующие файлы в заархивированном архиве
Если у вас есть zip-файл, который должен каждый раз содержать одни и те же имена файлов, и вы хотите обновить этот файл любыми изменениями, внесенными в эти файлы, то переключатель -f поможет вам сделать это. ,
Например, представьте, что у вас есть заархивированный файл со следующими файлами:
/Главная/вашеимя/документы/file1
/Главная/вашеимя/документы/file2
/Главная/вашеимя/документы/file3
/Главная/вашеимя/документы/file4
/Главная/вашеимя/документы/file5
/Главная/вашеимя/документы/file6
Теперь представьте, что в течение недели вы добавили два новых файла и изменили два файла так, чтобы папка/home/yourname/documents теперь выглядела так:
/Главная/вашеимя/документы/file1
/Главная/вашеимя/документы/file2
/Главная/вашеимя/документы/file3
/home/ваше имя/документы/file4 (обновлено)
/home/ваше имя/документы/file5 (обновлено)
/Главная/вашеимя/документы/file6
/Главная/вашеимя/документы/file7
/Главная/вашеимя/документы/file8
Когда вы выполните следующую команду, 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 .
Предположим, у вас есть 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 для дальнейшего сжатия файла. Это занимает больше времени, но может значительно сэкономить место.
zip myfiles.zip -r/home -5