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

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

[[email protected] locations]$ unzip community_images.tar.gz
Archive:  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 archive
unzip:  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?

598 голосов | спросил EmmyS 9 FebruaryEurope/MoscowbWed, 09 Feb 2011 01:50:41 +0300000000amWed, 09 Feb 2011 01:50:41 +030011 2011, 01:50:41

4 ответа


1028

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

tar -xvzf community_images.tar.gz

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

  • f: это должен быть последний флаг команды, а tar f должен сразу после. Он сообщает tar имя и путь сжатого файла.
  • z: говорит tar для распаковки архива с помощью g z ip
  • x: tar может собирать файлы или e x трассировать их. x делает последний.
  • v: сильно заставляет tar говорить. V Выход erbose показывает все файлы, которые были извлечены.
ответил djeikyb 9 FebruaryEurope/MoscowbWed, 09 Feb 2011 01:57:20 +0300000000amWed, 09 Feb 2011 01:57:20 +030011 2011, 01:57:20
122

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

Пример:

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

Вы можете легко запомнить его, если вы считаете, что tar использовать X тракт a F ile

gif процесса, выполняемого на терминале

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

ответил JorgeArtware 20 PM00000030000005931 2014, 15:02:59
87

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

tar xf community_images.tar.gz

То же самое объясняется:

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

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

ответил djeikyb 1 Jam1000000amWed, 01 Jan 2014 03:54:44 +040014 2014, 03:54:44
3

Если вы не можете извлечь файл .tar.gz, используя

tar -xvzf fileName.tar.gz

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

tar xf fileName.tar.gz
ответил Shravan40 5 Jam1000000amThu, 05 Jan 2017 09:29:50 +030017 2017, 09:29:50

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132