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

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

[esthers@clients 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?

983
задан 1 January 2014 в 03:46

8 ответов

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

tar -xvzf community_images.tar.gz

Кроме того, для извлечения в определенный каталог

, например. для извлечения архива в специальный каталог my_images .

tar -xvzf community_images.tar.gz -C my_images

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

  • f : это должен быть последний флаг команды, а файл tar f должен стоять сразу после него. Он сообщает tar имя и путь к сжатому файлу.
  • z : указывает tar распаковать архив с помощью g z ip
  • x : tar может собирать файлы или e x трактуют их. x делает последнее.
  • v : заставляет tar много говорить. V erbose вывод показывает вам все извлекаемые файлы.
  • C : означает c переход к каталогу DIR . В нашем примере DIR - это my_images .
1545
ответ дан 1 January 2014 в 03:46

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

tar xf community_images.tar.gz

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

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

    119
    ответ дан 1 January 2014 в 03:46

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

    Пример:

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

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

    gif of process done at terminal

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

    185
    ответ дан 1 January 2014 в 03:46

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

    enter image description here

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

    #!/usr/bin/env python3
    import tarfile,sys,os
    tf = 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-архивов .

    15
    ответ дан 1 January 2014 в 03:46

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

    tar -xvzf fileName.tar.gz
    

    Попробуйте распаковать с помощью

    tar xf fileName.tar.gz
    
    4
    ответ дан 1 January 2014 в 03:46

    Jawapan Pantas:

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

    [ CATATAN ]:

    • -v Senaraikan fail yang diproses secara verbal.
    • -z Tapis arkib melalui gzip.
    • -f Gunakan arkib fail atau peranti ARCHIVE.
    • -x Ekstrak fail dari arkib.
    • -j bzip2.
    • tar -xf archive.tar # Ekstrak semua fail dari archive.tar .
    11
    ответ дан 1 January 2014 в 03:46

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

    gunzip community_images.tar.gz

    Затем у вас будет файл: community_images.tar

    Второй шаг:

    tar -xvf community_images.tar

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

    0
    ответ дан 1 January 2014 в 03:46

    tar xvf file.tar.gz

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

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

    2
    ответ дан 22 November 2019 в 22:31

    Другие вопросы по тегам:

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