Сегодня я столкнулся с этой проблемой
gzip: stdin: not in gzip format
и нашел Как извлечь файл filename.tar.gz , но я был удивлен, что этот файл не является допустимым форматом gzip .
Это правда, что file archive.tar.gz
возвращает data
вместо POSIX tar archive (GNU)
Когда я пытался выяснить, где проблема, я понял, что проблема заключается в «пустой» смоле .
Я могу воспроизвести проблему следующим образом:
$ echo -n "" > empty.txt
$ tar --remove-files -cvf empty.tar.gz -T empty.txt
$ file empty.tar.gz
empty.tar.gz: data
$ tar -tvf empty.tar.gz
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
, поэтому мне интересно, как "восстановиться" от этого?
Кажется, что m c не имеет проблем с этим.
Хорошо, я исправил свой скрипт, поэтому перед созданием tar проверяю количество записей в файле на tar
.
Некоторые другие советы?
$ tar --version
tar (GNU tar) 1.26
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by John Gilmore and Jay Fenlason.