Извлечение файла tar.gz возвращает: «Это не похоже на архив tar».

У меня есть tar.gz-файл, и я хочу извлечь его с помощью терминала. Я использовал следующие команды: tar tvzf ldtp_3.5.0.orig.tar.gz и tar -xvzf ldtp_3.5.0.orig.tar.gz . Тем не менее, я получаю тот же результат для обоих файлов:

 tar: This does not look like a tar archive tar: Skipping to next header tar: Exiting with failure status due to previous errors 

Вывод команды файла показывает его файл gzip:

 $ file ldtp_3.5.0.orig.tar.gz ldtp_3.5.0.orig.tar.gz: gzip compressed data, from Unix 

Я могу извлечь его с помощью правой кнопки мыши -> Извлечь, но я хочу сделать это с помощью терминала. Может ли кто-нибудь сказать мне, как это сделать?

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

Значение, если вы скачали это с веб-сервера, иногда Gzip compression get применяется к веб-контенту на уровне сервера, чтобы ускорить загрузку контента. Но если на сервере не установлен должным образом игнорировать уже сжатый контент, такой как это, он может непреднамеренно удваивать файлы Gzip.

Имея это в виду, я бы посмотрел, просто ли просто отключил его от командной строки, чтобы узнать, что произойдет. Используйте следующую команду:

 gzip -d ldtp_3.5.0.orig.tar.gz 

И посмотрите, что получилось в результате. У меня возникло смешное чувство после запуска этой команды, вы не увидите ldtp_3.5.0.orig.tar в каталоге, а скорее файл с именем ldtp_3.5.0.orig.tar.gz – но, возможно, с изменением ? Если это так, то это действительно двойное Gzip. Итак, в этот момент – после этого начального un-Gzip – вы можете запустить команду tar вам нравится:

 tar -xvzf ldtp_3.5.0.orig.tar.gz 

И теперь он должен правильно распаковать полный архив TAR.

Другой способ сделать что-то похожее на этот двухэтапный процесс – передать вывод gzip в tar следующим образом:

 gzip -dc ldtp_3.5.0.orig.tar.gz | tar -xvzf - 

c в gzip а также - в конце команды – это ключ:

  • Параметр c для gzip сообщает gzip о распаковке стандартного потока вывода.
  • В конце команды tar используется «использовать стандартный вход». Таким образом, в сочетании с -c в gzip , труба будет принимать стандартный выходной поток, подаваемый на него из gzip и подключать его к стандартным входам в tar .
  • Bash - обработка вывода по одной строке за раз
  • Как ssh к недоступной удаленной машине путем туннелирования через сервер, к которому все могут добраться?
  • Что происходит с запущенными процессами, когда я теряю удаленное соединение с полем * nix?
  • Unix «$ @» в качестве параметра
  • Могу ли я узнать, есть ли у меня сеанс scp в моем .bashrc?
  • Bash - каталоги, заканчивающиеся на. И пробелы не могут быть удалены
  • Легкий способ индексирования STDOUT (форматировать текст в столбцах)?
  • Почему размер раздела подкачки должен быть вдвое меньше размера ОЗУ?
  • Linux / Unix в Windows
  • Есть ли сценарий, в котором необходим rm -rf -no-preserve-root?
  • Поиск всех символических и жестких ссылок на файл в UNIX
  • Давайте будем гением компьютера.