Как узнать, сколько файлов находится в архиве

Обновлено: 06.07.2024

Короче говоря, архив – это отдельный файл, содержащий набор других файлов и/или каталогов. Архивные файлы обычно используются для передачи (локально или через Интернет) или создания резервной копии набора файлов и каталогов, что позволяет вам работать только с одним файлом (при сжатии он имеет меньший размер, чем сумма всех файлов). файлы внутри него) вместо многих. Точно так же архивы используются для упаковки программных приложений. Этот единственный файл можно легко сжать для удобства передачи, в то время как файлы в архиве сохраняют структуру и разрешения исходных файлов.

Мы можем использовать инструмент tar для создания, просмотра и извлечения файлов из архивов. Архивы, созданные с помощью tar, обычно называются «tar-файлами», «tar-архивами» или — поскольку все заархивированные файлы объединены в один — «tarballs».

В этом руководстве показано, как использовать tar для создания архива, вывода списка содержимого архива и извлечения файлов из архива. Две общие опции, используемые со всеми тремя этими операциями, — это «-f» и «-v»: чтобы указать имя файла архива, используйте «-f», за которым следует имя файла; используйте параметр ‘-v’ («подробный»), чтобы tar выводил имена файлов по мере их обработки. Хотя параметр «-v» необязателен, он позволяет вам наблюдать за ходом выполнения операции tar.

В оставшейся части этого руководства мы рассмотрим 3 темы: 1. Создание архивного файла, 2. Получение списка содержимого архивного файла и 3. Извлечение содержимого из архивного файла. Мы завершаем это руководство рассмотрением 6 практических вопросов, связанных с управлением архивными файлами. То, что вы усвоите из этого руководства, необходимо для выполнения задач, связанных с кибербезопасностью и облачными технологиями.

1- Создание файла архива

Чтобы создать архив с помощью tar, используйте параметр «-c» («создать») и укажите имя создаваемого файла архива с помощью параметра «-f». Обычной практикой является использование имени с расширением «.tar», например, «my-backup.tar». Обратите внимание, что если не указано иное, все команды и параметры команд, используемые в оставшейся части этой статьи, используются в нижнем регистре. Имейте в виду, что при вводе команд из этой статьи на своем терминале вам не нужно вводить знак приглашения $, который появляется в начале каждой командной строки.

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

Чтобы создать архив с именем «project.tar» из содержимого каталога «project», введите:

$ tar -cvf project.tar проект

Эта команда создает архивный файл с именем «project.tar», содержащий каталог «проект» и все его содержимое. Исходный каталог проекта остается без изменений.

Используйте параметр «-z» для сжатия архива во время его записи. Это дает тот же результат, что и создание несжатого архива, а затем использование gzip для его сжатия, но устраняет дополнительный шаг.

Чтобы создать сжатый архив с именем «project.tar.gz» из содержимого каталога «project», введите:

$ tar -zcvf project.tar.gz проект

Эта команда создает сжатый архивный файл «project.tar.gz», содержащий каталог «проект» и все его содержимое. Исходный каталог проекта остается без изменений.

ПРИМЕЧАНИЕ. При использовании параметра «-z» следует указывать имя архива с расширением «.tar.gz», а не с расширением «.tar», чтобы имя файла показывало, что архив сжат. Хотя это и не обязательно, рекомендуется следовать этому правилу.

Gzip — не единственная форма сжатия. Есть еще bzip2 и и xz. Когда мы видим файл с расширением xz, мы знаем, что он был сжат с использованием xz. Когда мы видим файл с расширением .bz2, мы можем сделать вывод, что он был сжат с помощью bzip2. Мы собираемся отказаться от bzip2, так как он перестал поддерживаться, и сосредоточимся на xz. При сжатии с использованием xz сжатие файлов займет больше времени. Однако, как правило, стоит подождать, так как сжатие намного эффективнее, а это означает, что результирующий файл обычно будет меньше, чем другие используемые методы сжатия. Еще лучше тот факт, что распаковка или расширение файла не сильно отличается между различными методами сжатия. Ниже мы видим пример того, как использовать xz при сжатии файла с помощью tar

$ tar -Jcvf project.tar.xz проект

Мы просто меняем -z для gzip на верхний регистр -J для xz. Вот несколько выходных данных, отображающих различия между формами сжатия:

Как видите, xz сжимается дольше всего. Однако он лучше всего справляется с уменьшением размера файлов, поэтому стоит подождать. Чем больше файл, тем лучше становится сжатие!

2- Список содержимого архивного файла

Чтобы просмотреть содержимое архива tar, не распаковывая его, используйте tar с параметром «-t».

Чтобы просмотреть содержимое архива с именем «project.tar», введите:

$ tar -tvf project.tar

Эта команда выводит содержимое архива ‘project.tar’. Использование параметра '-v' вместе с параметром '-t' приводит к тому, что tar выводит права доступа и время модификации каждого файла вместе с его именем файла - тот же формат, который используется командой ls с параметром '-l'.

Чтобы просмотреть содержимое сжатого архива с именем ‘project.tar.gz’, введите:

$ tar -tvf project.tar

3- Извлечение содержимого из файла архива

Чтобы извлечь (или распаковать) содержимое архива tar, используйте tar с параметром ‘-x’ («извлечь»).

Чтобы извлечь содержимое архива с именем «project.tar», введите:

$ tar -xvf проект.tar

Эта команда извлекает содержимое архива ‘project.tar’ в текущий каталог.

Если архив сжат, что обычно означает, что он будет иметь расширение «.tar.gz» или «.tgz», включите параметр «-z».

Чтобы извлечь содержимое сжатого архива с именем ‘project.tar.gz’, введите:

$ tar -zxvf project.tar.gz

ПРИМЕЧАНИЕ. Если в текущем каталоге есть файлы или подкаталоги с тем же именем, что и у любого из файлов в архиве, эти файлы будут перезаписаны при извлечении архива. Если вы не знаете, какие файлы включены в архив, попробуйте сначала перечислить содержимое архива.

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

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

Теперь, когда мы научились создавать файл архива и перечислять/извлекать его содержимое, мы можем перейти к обсуждению следующих 9 практических вопросов, которые часто задают профессионалы Linux.

  • Можно ли добавить содержимое в файл архива, не распаковывая его?

К сожалению, после сжатия файла нет возможности добавить в него содержимое. Вам придется «распаковать» его или извлечь содержимое, отредактировать или добавить содержимое, а затем снова сжать файл. Если это небольшой файл, этот процесс не займет много времени. Если это большой файл, будьте готовы к тому, что это займет некоторое время.

  • Можно ли удалить контент из файла архива, не распаковывая его?

Это зависит от используемой версии tar. Более новые версии tar будут поддерживать --delete.

Например, предположим, что у нас есть файлы file1 и file2 . Их можно удалить из file.tar следующим образом:

$ tar -vf файл.tar – удалить файл1 файл2

Чтобы удалить каталог dir1:

$ tar -f файл.tar – удалить каталог1/*

  • В чем разница между сжатием папки и ее архивированием?

Самый простой способ увидеть разницу между архивированием и сжатием – посмотреть на конечный результат. Когда вы архивируете файлы, вы объединяете несколько файлов в один. Итак, если мы заархивируем 10 файлов по 100 КБ, вы получите один файл размером 1000 КБ. С другой стороны, если мы сожмем эти файлы, мы можем получить файл размером всего несколько КБ или около 100 КБ.

Как мы видели выше, вы можете создавать и архивировать файлы с помощью команды tar с параметрами cvf. Чтобы сжать созданный нами файл архива, есть два варианта; запустите файл архива через сжатие, такое как gzip. Или используйте флаг сжатия при использовании команды tar. Наиболее распространенные флаги сжатия: -z для gzip, -j для bzip и -J для xz. Мы можем видеть первый метод ниже:

Или мы можем просто использовать флаг сжатия при использовании команды tar, здесь мы увидим флаг gzip «z»:

$ tar -cvzf file.tar /some/directory

  • Как создавать архивы из нескольких каталогов и/или файлов одновременно?

Нередки ситуации, когда нам нужно заархивировать сразу несколько файлов или каталогов. И это не так сложно, как вы думаете, заархивировать несколько файлов и каталогов одновременно. Вы просто указываете, какие файлы или каталоги вы хотите заархивировать, в качестве аргументов команды tar:

$ tar -cvzf файл.tar файл1 файл2 файл3

$ tar -cvzf файл.tar /some/directory1 /some/directory2

  • Как пропустить каталоги и/или файлы при создании архива?

Вы можете столкнуться с ситуацией, когда вы хотите заархивировать каталог или файл, но вам не нужно архивировать определенные файлы. Чтобы избежать архивирования этих файлов или «исключить» их, вы должны использовать опцию –exclude с tar:

$ tar – исключить файл ‘/some/directory’ -cvf.tar /home/пользователь

Таким образом, в этом примере /home/user будет заархивирован, но будет исключен каталог /some/, если он находится в /home/user. Важно указать параметр –exclude перед источником и местом назначения, а также заключить исключаемый файл или каталог в одинарные кавычки.

Обзор

Команда tar полезна для создания резервных копий или сжатия файлов, которые вам больше не нужны. Хорошей практикой является создание резервных копий файлов перед их изменением. Если что-то не работает так, как задумано после изменения, вы всегда сможете вернуться к старому файлу. Сжатие файлов, которые больше не используются, помогает поддерживать чистоту системы и снижает использование дискового пространства. Существуют и другие доступные утилиты, но tar преобладает благодаря своей универсальности, простоте использования и популярности.

Ресурсы

Если вы хотите больше узнать о Linux, настоятельно рекомендуем прочитать следующие статьи и руководства:

Об авторах

Кевин Даунс является сертифицированным системным администратором Red Hat или RHCSA. На своей нынешней работе в IBM в качестве системного администратора он отвечает за администрирование сотен серверов, работающих на различных дистрибутивах Linux. Он является ведущим инструктором по Linux в Coding Bootcamps, где он является автором 5 курсов для самостоятельного изучения.

Сжатые файлы (известные под разными именами, см. таблицу справа, но в этом документе называемые «сжатыми файлами») — это один или несколько файлов на диске компьютера, которые были объединены в один файл в компактном образом, чтобы уменьшить их общий размер файла. Это очень полезно, когда место на диске ограничено или когда люди скачивают файлы. Поскольку несколько файлов могут храниться в сжатом файле, один файл можно загрузить, а затем разархивировать, чтобы легко загрузить несколько файлов одновременно. Заархивированный файл можно представить как набор книг на полке:

[книги на полка]

Набор книг организован таким образом, что занимает очень мало места, но вы не можете использовать или читать их, если они расположены таким сжатым образом.

Распаковка файлов

Чтобы работать с заархивированными файлами, их необходимо сначала разархивировать или извлечь. В Windows есть встроенная программа Windows Compressed Folders, которая может сделать это за вас. Если вы установили архиватор, например WinZip* или 7-Zip*, сжатые папки Windows могут быть недоступны на вашем компьютере. Если вы следуете приведенным ниже инструкциям для сжатых папок Windows, но открывается другая программа, вы все равно можете следовать перечисленным инструкциям, и в целом все должно работать.

- Распаковка файла со сжатыми папками Windows

  1. ↓ СОВЕТ. Установите флажок для каждого шага, который вы выполнили, чтобы не указывать следующий шаг.

В этом руководстве предполагается, что вы можете видеть расширения файлов, которые, к сожалению, не используются по умолчанию для установки Windows. Чтобы показать эти расширения файлов, см. документацию Microsoft для Vista или XP. Если вы не показываете или не можете отображать расширения файлов, вы все равно можете использовать значок файла для определения типа файла.

Найдите заархивированный файл, который нужно разархивировать, в проводнике Windows. В этом примере я показываю cvs-eep-entrytool-v2.2.7.zip в папке C:\data. Здесь показана Windows XP, но Windows Vista работает таким же образом:

Обратите внимание, что расширение файла .zip для zipфайла.


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

Обратите внимание, что в адресной строке теперь указано, что вы находитесь в папке с . zip, а также показывает значок заархивированного файла. Файл внутри этого заархивированного файла отображается как обычный разархивированный файл. В данном случае это файл .mdb или Microsoft database. Не открывайте этот файл дважды, если он находится в заархивированной папке. Это все равно, что пытаться прочитать книгу, прежде чем взять ее с полки.

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


< /p>

Один раз щелкните файл(ы) и/или папку(и), которые нужно разархивировать. Если вы хотите выбрать все файлы и папки (даже если есть только один) в ZIP-файле, нажмите Ctrl-A на клавиатуре:

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


Теперь скопируйте файл(ы), нажав Ctrl-C на клавиатуре.

Затем нажмите кнопку "Назад", чтобы вернуться в предыдущую папку:

Теперь вы находитесь в исходной папке, которая не является заархивированным файлом (в данном случае C:\data):

Наконец, вставьте файлы в эту папку, нажав Ctrl-V на клавиатуре. При этом файлы будут скопированы в виде разархивированных файлов в папку, которую вы просматриваете в данный момент:


Для больших файлов это может занять несколько минут или больше.


После завершения копирования файла ZIP-файл и разархивированные файлы находятся в одной папке. Вы можете использовать ZIP-файл в качестве резервной копии или удалить его. Теперь вы можете работать с разархивированными файлами. В приведенной выше аналогии вы взяли книги с полки и можете их читать. Наслаждаться!

- Распаковка файла с помощью других zip-программ


Существуют и другие программы для сжатия и распаковки файлов. Двумя популярными программами являются WinZip* и 7-Zip*. Оба они позволяют распаковывать и архивировать двумя щелчками мыши:

Здесь я щелкнул правой кнопкой мыши по заархивированному файлу и выбрал «Извлечь сюда». «Извлечь» — это то же самое, что «распаковать». Windows также иногда размещает ссылки «Извлечь файлы» на панели инструментов, которые могут быть вам полезны. Windows обычно открывает мастер, чтобы спросить, куда вы хотите извлечь файлы. Расположение инструмента «извлечь файлы» зависит от того, как настроен проводник Windows и какую версию Windows вы используете.

- Сжатие файла с помощью сжатых папок Windows

  1. ↓ СОВЕТ. Установите флажок для каждого шага, который вы выполнили, чтобы не указывать следующий шаг.


< /p>

Щелкните правой кнопкой мыши файл, щелкните левой кнопкой мыши «Отправить» > , затем щелкните левой кнопкой мыши «Сжатую (архивированную) папку»:


< /p>

Windows создает временный файл (буквы выделены) и может отображать окно выполнения "Сжатие".


< /p>

Когда Windows завершит сжатие, в той же папке, что и распакованный файл, будет создан новый файл .zip с тем же именем, но с расширением .zip:

Обратите внимание, что в большинстве случаев размер файла будет намного меньше. Некоторые файлы нельзя сильно сжать, например изображения .jpg. Другие файлы, такие как текстовые файлы и файлы базы данных, сжимаются до небольшой доли размера несжатого файла.

- Сжатие с другими программами


< /p>

Как и выше, существуют и другие программы для сжатия файлов в два клика:

*Эта страница носит исключительно информационный характер и не является рекламой какого-либо конкретного программного обеспечения.

В Unix и Unix-подобных операционных системах (таких как Linux) вы можете использовать команду tar (сокращение от "архивирование ленты") для объединения нескольких файлов в один файл архива для удобства хранения и/или распространения. Кроме того, вы можете использовать tar в сочетании с утилитой сжатия, такой как gzip или compress , для создания сжатого файла архива.

Создать файл архива

Чтобы объединить несколько файлов в один файл архива (например, my_files.tar ), используйте следующую команду (замените файл1 и файл2 именами файлов, которые вы хотите объединить):

Чтобы объединить все файлы в каталоге в один архивный файл (например, my_files.tar ), используйте следующую команду (замените /path/to/my/directory абсолютным путем к каталогу, содержащему файлы, которые вы хочу совместить):

  • Вы можете использовать любое имя вместо my_files.tar , но вы должны сохранить расширение .tar.
  • Если вы не используете параметр -f, tar предположит, что вы хотите создать ленточный архив, а не объединять несколько файлов.
  • Опция -v указывает, что tar должен быть подробным (сообщать обо всех файлах по мере их добавления).

Создать сжатый архивный файл

Многие дистрибутивы Linux используют GNU tar — версию tar, созданную Free Software Foundation. Если в вашей системе используется GNU tar , вы можете использовать tar в сочетании с утилитой сжатия файлов gzip для объединения нескольких файлов в сжатый файл архива.

  • Чтобы использовать tar и gzip для объединения нескольких файлов в сжатый архивный файл (например, my_files.tar.gz ), используйте следующую команду (замените файл1 и файл2 именами файлов, которые вы хотите объединить):
  • Чтобы использовать tar и gzip для объединения всех файлов в каталоге в сжатый файл архива (например, my_files.tar.gz ), используйте следующую команду (замените /path/to/my/directory на абсолютный путь в каталог, содержащий файлы, которые вы хотите объединить):
  • В приведенных выше примерах параметр -z указывает tar использовать gzip для сжатия архива по мере его создания.
  • Расширения файлов .tgz и .tar.gz эквивалентны; оба означают файл архива tar, сжатый с помощью gzip .

Если ваша система не использует GNU tar , но тем не менее имеет gzip , вы можете создать сжатый файл архива tar (например, my_files.tar.gz с помощью следующей команды (замените file1 и file2 именами файлов, которые вы хотите комбинировать):

Если в вашей системе недоступен gzip, вы можете использовать утилиту сжатия для создания сжатого архива (например, my_files.tar.Z ); например (замените файл1 и файл2 именами файлов, которые вы хотите объединить):

Извлечь содержимое файла архива

Чтобы извлечь содержимое файла архива tar, созданного tar (например, my_files.tar ), используйте следующую команду:

Чтобы извлечь содержимое файла архива tar, сжатого с помощью gzip (например, my_files.tar.gz ), используйте следующую команду:

Если вы не используете GNU tar и вам нужно извлечь содержимое файла архива tar, сжатого с помощью gzip (например, my_files.tar.gz ), используйте следующую команду:

Чтобы извлечь содержимое файла архива tar, сжатого с помощью Compress (например, my_files.tar.Z ), используйте следующую команду:

Дополнительная информация

При использовании команды tar порядок параметров иногда имеет значение. Например, некоторые версии tar (не GNU tar ) требуют, чтобы за параметром -f сразу же следовал пробел и имя архивного файла tar.

Команда tar имеет много доступных опций. Для получения подробной информации обратитесь к странице руководства tar; в командной строке введите:

GNU tar поставляется с дополнительной документацией, включая руководство, доступ к которому можно получить через интерфейс GNU Info. Вы можете получить доступ к этой документации, введя:

В информационном интерфейсе нажмите ? (знак вопроса) для списка команд.

В Университете Индианы для личной или ведомственной поддержки систем Linux или Unix см. раздел Получение справки по Linux или Unix в IU.

Создает сжатый архив или заархивированный файл из указанных файлов и каталогов.

Синтаксис

Описание

Командлет Compress-Archive создает сжатый или заархивированный архивный файл из одного или нескольких указанных файлов или каталогов. Архив упаковывает несколько файлов с дополнительным сжатием в один заархивированный файл для упрощения распространения и хранения. Архивный файл можно сжать с помощью алгоритма сжатия, заданного параметром CompressionLevel.

В некоторых примерах разбрызгивание используется для уменьшения длины строки примеров кода. Дополнительную информацию см. в разделе about_Splatting.

Примеры

Пример 1. Сжатие файлов для создания файла архива

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

Параметр Path принимает определенные имена файлов и имена файлов с подстановочными знаками, *.vsd . Путь использует список, разделенный запятыми, для получения файлов из разных каталогов. Уровень сжатия Fastest для сокращения времени обработки. Параметр DestinationPath указывает расположение файла Draft.zip. Файл Draft.zip содержит Draftdoc.docx и все файлы с расширением .vsd.

Пример 2. Сжатие файлов с помощью LiteralPath

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

Используются абсолютные пути и имена файлов, поскольку параметр LiteralPath не принимает подстановочные знаки. Путь использует список, разделенный запятыми, для получения файлов из разных каталогов. Уровень сжатия Fastest для сокращения времени обработки. Параметр DestinationPath указывает расположение файла Draft.zip. Файл Draft.zip содержит только Draftdoc.docx и диаграмму2.vsd .

Пример 3. Сжатие каталога, включающего корневой каталог

В этом примере выполняется сжатие каталога и создание архивного файла, включающего корневой каталог, а также все его файлы и подкаталоги. Файл архива имеет структуру каталогов, поскольку путь указывает корневой каталог.

Compress-Archive использует параметр Path для указания корневого каталога C:\Reference . Параметр DestinationPath указывает расположение файла архива. Проект.zip включает в себя корневой каталог Reference, а также все его файлы и подкаталоги.

Пример 4. Сжатие каталога без корневого каталога

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

Compress-Archive использует параметр Path для указания корневого каталога C:\Reference со звездочкой ( * ) подстановочным знаком. Параметр DestinationPath указывает расположение файла архива. Архив Draft.zip содержит файлы и подкаталоги корневого каталога. Корневой каталог Reference исключается из архива.

Пример 5. Сжатие только файлов в корневом каталоге

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

Compress-Archive использует параметр Path для указания корневого каталога C:\Reference с подстановочным знаком "звезда-точка-звезда" ( *.* ). Параметр DestinationPath указывает расположение файла архива. Архив Draft.zip содержит только файлы корневого каталога Reference, а корневой каталог исключается.

Пример 6. Использование конвейера для архивирования файлов

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

Командлет Get-ChildItem использует параметр Path для указания двух файлов из разных каталогов. Каждый файл представлен объектом FileInfo и передается по конвейеру в Compress-Archive. Два указанных файла заархивированы в PipelineFiles.zip .

Пример 7. Использование конвейера для архивирования каталога

В этом примере каталог отправляется по конвейеру для создания архива. Файлы отправляются как объекты FileInfo, а каталоги — как объекты DirectoryInfo. Структура каталогов архива не включает корневой каталог, но его файлы и подкаталоги включены в архив.

Командлет Get-ChildItem использует параметр Path для указания корневого каталога C:\LogFiles. Каждый объект FileInfo и DirectoryInfo отправляется по конвейеру.

Compress-Archive добавляет каждый объект в архив PipelineDir.zip. Параметр Path не указан, так как объекты конвейера принимаются в позиции параметра 0.

Пример 8. Как рекурсия может повлиять на архивы

В этом примере показано, как рекурсия может дублировать файлы в вашем архиве. Например, если вы используете Get-ChildItem с параметром Recurse. В процессе рекурсии каждый объект FileInfo и DirectoryInfo передается по конвейеру и добавляется в архив.

Каталог C:\TestLog не содержит файлов. Он содержит подкаталог с именем testsub, содержащий файл testlog.txt.

Командлет Get-ChildItem использует параметр Path для указания корневого каталога C:\TestLog . Параметр Recurse обрабатывает файлы и каталоги. Объект DirectoryInfo создается для testub и объекта FileInfo testlog.txt .

Каждый объект передается по конвейеру в Compress-Archive . DestinationPath указывает расположение файла архива. Параметр Path не указан, так как объекты конвейера принимаются в позиции параметра 0.

В следующей сводке описывается содержимое архива PipelineRecurse.zip, содержащего дубликат файла:

  • Объект DirectoryInfo создает каталог testsub и содержит файл testlog.txt, который отражает исходную структуру каталогов.
  • Объект FileInfo создает дубликат testlog.txt в корневом каталоге архива. Дубликат файла создается, потому что рекурсия отправила файловый объект в Compress-Archive . Такое поведение ожидается, поскольку каждый объект, отправленный по конвейеру, добавляется в архив.

Пример 9. Обновление существующего файла архива

В этом примере обновляется существующий архивный файл Draft.Zip в каталоге C:\Archives. В этом примере существующий архивный файл содержит корневой каталог, его файлы и подкаталоги.

Команда обновляет Draft.Zip новыми версиями существующих файлов в каталоге C:\Reference и его подкаталогах. Кроме того, новые файлы, которые были добавлены в C:\Reference или его подкаталоги, включаются в обновленный архив Draft.Zip.

Параметры

Указывает степень сжатия, которую следует применять при создании файла архива. Более быстрое сжатие требует меньше времени для создания файла, но может привести к увеличению размера файла.

Если этот параметр не указан, команда использует значение по умолчанию, Оптимальное.

Для этого параметра допустимы следующие значения:

  • Самый быстрый. Используйте самый быстрый из доступных методов сжатия, чтобы сократить время обработки. Более быстрое сжатие может привести к увеличению размера файла.
  • Без сжатия.Не сжимает исходные файлы.
  • Оптимально. Время обработки зависит от размера файла.

Запрашивает подтверждение перед запуском командлета.

< /tr>

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

Если имя файла в DestinationPath не имеет расширения .zip, командлет добавляет расширение .zip к имени файла.

Тип:SwitchParameter
Псевдонимы:cf
Позиция:Имя
Значение по умолчанию:False
Принимать ввод конвейера:False
Допускать подстановочные знаки:False
Тип:Строка
Позиция:1
Значение по умолчанию:Нет
Принять ввод конвейера:False
Допускать подстановочные знаки:False

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

Тип:SwitchParameter
Позиция:Именованный
Значение по умолчанию:False
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Указывает путь или пути к файлам, которые вы хотите добавить в заархивированный файл. В отличие от параметра Path, значение LiteralPath используется точно так, как оно введено. Никакие символы не интерпретируются как подстановочные знаки. Если путь включает escape-символы, заключите каждый escape-символ в одинарные кавычки, чтобы PowerShell не интерпретировал какие-либо символы как escape-последовательности. Чтобы указать несколько путей и включить файлы в нескольких местах в выходной заархивированный файл, используйте запятые для разделения путей.

Тип:String [ ]
Псевдонимы:PSPath
Позиция:Имя
Значение по умолчанию:Нет
Принимать ввод конвейера:True
Допускать подстановочные знаки:False< /td>

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

Этот параметр появился в PowerShell 6.0.

Тип:SwitchParameter
Позиция:Именованный
Значение по умолчанию:False
Принять ввод конвейера:False
Допускать подстановочные знаки:False

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

Данный параметр принимает подстановочные знаки. Подстановочные знаки позволяют добавлять все файлы в каталоге в файл архива.

Использование подстановочных знаков с корневым каталогом влияет на содержимое архива:

  • Чтобы создать архив, включающий корневой каталог со всеми его файлами и подкаталогами, укажите корневой каталог в Пути без подстановочных знаков. Например: -Путь C:\Reference
  • Чтобы создать архив, исключающий корневой каталог, но сжимающий все его файлы и подкаталоги, используйте подстановочный знак звездочки ( * ). Например: -Путь C:\Reference\*
  • Чтобы создать архив, который заархивирует только файлы в корневом каталоге, используйте подстановочный знак "звезда-точка-звезда" ( *.* ). Подкаталоги корня не включаются в архив. Например: -Путь C:\Reference\*.*

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

Тип:SwitchParameter
Позиция:Именованный
Значение по умолчанию:False
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Показывает, что произойдет, если командлет запустится. Командлет не запущен.

< /tr>

Входные данные

Вы можете передать строку, содержащую путь к одному или нескольким файлам.

Результаты

Командлет возвращает объект FileInfo только при использовании параметра PassThru.

Примечания

Использование рекурсии и отправка объектов по конвейеру может привести к дублированию файлов в вашем архиве.Например, если вы используете Get-ChildItem с параметром Recurse, каждый объект FileInfo и DirectoryInfo, отправленный по конвейеру, добавляется в архив.

В спецификации файла ZIP не указан стандартный способ кодирования имен файлов, содержащих символы, отличные от ASCII. Командлет Compress-Archive использует кодировку UTF-8. Другие инструменты ZIP-архива могут использовать другую схему кодирования. При извлечении файлов с именами файлов, сохраненными не в кодировке UTF-8, Expand-Archive использует необработанное значение, найденное в архиве. Это может привести к тому, что имя файла будет отличаться от имени исходного файла, хранящегося в архиве.

Читайте также:

Тип:SwitchParameter
Псевдонимы:wi
Позиция:Имя
Значение по умолчанию:False
Принимать ввод конвейера:False
Допускать подстановочные знаки:False