Я видел другие вопросы, связанные с этой ошибкой (например, Извлечение файла tar.gz возвращает «Это не похоже на архив tar.»), Но я не уверен, как применить их к моей проблеме:
Сначала скачайте файл:
$ wget --no-check-certificate https://wxpython.org/Phoenix/tools/doxygen-1.8.8-linux.bz2
--2017-04-06 15:06:11-- https://wxpython.org/Phoenix/tools/doxygen-1.8.8-linux.bz2
Resolving wxpython.org (wxpython.org)... 85.234.150.54
Connecting to wxpython.org (wxpython.org)|85.234.150.54|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3961996 (3.8M) [application/x-bzip2]
Saving to: ‘doxygen-1.8.8-linux.bz2’
100%[==============================================================================>] 3,961,996 734KB/s in 5.0s
2017-04-06 15:06:16 (778 KB/s) - ‘doxygen-1.8.8-linux.bz2’ saved [3961996/3961996]
Затем проверьте тип файла:
$ file doxygen-1.8.8-linux.bz2
doxygen-1.8.8-linux.bz2: bzip2 compressed data, block size = 900k
Ну, это "сжатые данные bzip2", давайте распакуем его?
$ tar xjvf doxygen-1.8.8-linux.bz2
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains ‘\351\357\377I\211\304H\211’ where numeric mode_t value expected
tar: Archive contains ‘A\270\001\0\0\0H\211ǹ\001’ where numeric time_t value expected
tar: Archive contains ‘\307\350\216v)\0I\307’ where numeric uid_t value expected
tar: Archive contains ‘\004$P\254|\0\2770’ where numeric gid_t value expected
@\2678\350\330\351\357\377\2778
tar: @\2678\350\330\351\357\377\2778: Unknown file type '', extracted as normal file
tar: @�8������8: implausibly old time stamp 1970-01-01 00:59:59
tar: Skipping to next header
tar: Exiting with failure status due to previous errors
И я получаю пустой файл распакованным:
$ ls -la @�8������8
-rwxrwxr-x 1 user user 0 Jan 1 1970 @?8??????8
Странно, если я использую file-roller
(Archive Manager) и распаковываю из GUI, я получаю распакованный файл:
$ ls -la ~/Desktop/doxygen-1.8.8-linux
-rw-rw-r-- 1 user user 12283548 Apr 6 15:13 /home/user/Desktop/doxygen-1.8.8-linux
$ file ~/Desktop/doxygen-1.8.8-linux
/home/user/Desktop/doxygen-1.8.8-linux: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0eccee11d38322d5df3a1723651c2f18303e1188, not stripped
Итак, что здесь происходит - почему я не могу распаковать это из командной строки, и как я могу распаковать это с помощью командной строки?
РЕДАКТИРОВАТЬ: на самом деле я могу распаковать его с:
$ bzip2 -d doxygen-1.8.8-linux.bz2
$ file doxygen-1.8.8-linux
doxygen-1.8.8-linux: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0eccee11d38322d5df3a1723651c2f18303e1188, not stripped
... так что остается только один вопрос - почему я не мог использовать tar
для этого, как всегда делал иначе?