Какая команда мне нужна, чтобы распаковать / извлечь файл .tar.gz досье?

Я получил огромное.tar.gz файл с клиента, содержащий около 800 Мб файлов изображений (в несжатом виде). ftp нашей хостинговой компании работает очень медленно, поэтому извлекать все файлы локально и отправлять их по ftp нецелесообразно. Я смог передать по ftp .tar.gz файл на наш хостинг-сайт, но когда я подключаюсь к своему каталогу по ssh и пытаюсь использовать unzip, он выдает мне эту ошибку:

[esthers@clients locations]$ unzip community_images.tar.gzArchive:  community_images.tar.gz  End-of-central-directory signature not found.  Either this file is not a zipfile, or it constitutes one disk of a multi-part archive.  In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive.note:  community_images.tar.gz may be a plain executable, not an archiveunzip:  cannot find zipfile directory in one of community_images.tar.gz or community_images.tar.gz.zip, and cannot find community_images.tar.gz.ZIP, period.

Какую команду мне нужно использовать, чтобы извлечь все файлы в .tar.gz досье?

Тип man tar для получения дополнительной информации, но эта команда должна сделать свое дело:

tar -xvzf community_images.tar.gz

Чтобы объяснить немного подробнее, tar собрал все файлы в один пакет, community_images.tar. Программа gzip применила сжатие, следовательно, gz расширение. Итак, команда выполняет пару действий:

  • f: это должен быть последний флаг команды, а tar fиль должен быть сразу после. Он сообщает tar имя и путь к сжатому файлу.
  • z: сообщает tar распаковать архив с помощью gизip
  • x: tar может собирать файлы или электроннуюxобработайте их. x делает последнее.
  • v: заставляет меня много говорить. Vвывод erbose показывает вам все извлекаемые файлы.

Извлекать в cпапку ustom, добавьте -C опция с именем папки по вашему выбору:

tar -xvzf community_images.tar.gz -C some_custom_folder_name

Если вы хотите, чтобы файлы были извлечены в определенное место назначения, вы можете добавить -C /destination/path/
Сначала убедитесь, что вы создали каталог, в этом случае: ~/Pictures/Community

Пример:

mkdir ~/Pictures/Communitytar xf community_images.tar.gz -C /home/emmys/Pictures/Community/

Вы можете легко запомнить его, если подумаете о том, чтобы рассказать смола к e X трактат а F с

gif of process done at terminal

Примечание: Помните, что вы можете выполнять поиск внутри справочных страниц с помощью ?+термин для поиска, а затем n и N чтобы перейти к следующему или предыдущему экземпляру искомого термина.

В какой-то момент tar был обновлен до автоматической распаковки. Все, что вам сейчас нужно, это:

tar xf community_images.tar.gz

То же самое объяснение применимо:

  • f: это должен быть последний флаг команды, а tar fиль должен быть сразу после. Он сообщает tar имя и путь к сжатому файлу.
  • x: этотxобработайте файлы.

Обратите внимание на отсутствие дефиса для флагов команд. Это связано с тем, что большинство версий tar допускают как варианты стиля gnu, так и bsd (упрощенно, gnu требует дефиса, bsd - нет).

Запоминание всех флагов для tar может быть утомительно. Обязательный XKCD:

enter image description here

Поэтому я создал свой собственный маленький скрипт на Python, чтобы сделать это. Быстрый, грязный, cp-как в использовании:

#!/usr/bin/env python3import tarfile,sys,ostf = tarfile.open(name=sys.argv[1],mode='r:gz')where = '.'if len(sys.argv) == 3:    where = sys.argv[2]tf.extractall(path=where)tf.close()

Используйте его как таковой:

myuntar.py archive.tar

Смотрите также похожие скрипт для распаковки zip-архивов.

Быстрый Ответ:

tar -xvf  <.tar file> or <.tar.xz file>tar -xzvf <.tar.gz file>tar -xjvf <.tar.bz2 file>

[записка]:

  • -v Подробный список обработанных файлов.
  • -z Отфильтруйте архив с помощью gzip.
  • -f Используйте архивный файл или архив устройства.
  • -x Извлекать файлы из архива.
  • -j bzip2.
  • смола -xf archive.tar # Извлечь все файлы из archive.tar.

В случае, если вы не в состоянии извлечь .tar.gz файл, использующий

tar -xvzf fileName.tar.gz

Попробуйте извлечь с помощью

tar xf fileName.tar.gz

смола xvf file.tar.gz

  • x для извлечения
  • v для подробного описания (список файлов)
  • f для имени файла является следующим

Любая удаленно современная версия tar должна автоматически определять, что архив заархивирован, и добавлять "z" для вас.

Вы могли бы сделать это тоже на первом шаге:

пистолет-молния community_images.tar.gz

Тогда у вас есть файл: community_images.tar

Вторым шагом было бы:

tar -xvf community_images.tar

И файл *.tar будет извлечен.